一、请求的映射路径

名称:@RequestMapping

类型:方法注解,类注解。

位置:位于SpringMVC控制器方法的上方。

作用:设置当前控制器方法请求访问路径,如果设置在类上,统一设置当前控制器方法请求访问路径前缀。

属性:value(默认):请求访问路径,或访问路径前缀。

请求方式:

get请求:前端传参数给后台,后台接收。普通参数:URL地址传参,地址参数名与形参变量名相同,定义形参即可接收参数。

 

 

Post请求:form表单post请求传参,表单参数名与形参变量名相同,定义形参即可接收参数。

 

 post请求中文乱码,ServletContext中设置过滤器,注解在ServletContainersInitConfig类中设置

protected Filter[] getServletFilters() {
CharacterEncodingFilter filter=new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}

二、请求参数

 @RequestParam 

类型:形参注解

位置:SpringMVC控制器方法形参定义前面

作用:绑定请求参数与处理器形参间的关系

//普通参数:请求参数名与形参名不同时,使用@RequestParam注解关联请求参数名称与形参名称之间的关系
    @RequestMapping("/commonParamDifferentName")
    @ResponseBody
    public String commonParamDifferentName(@RequestParam("name") String userName , int age){
        System.out.println("普通参数传递 userName ==> "+userName);
        System.out.println("普通参数传递 age ==> "+age);
        return "{'module':'common param different name'}";
    }
//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据
    @RequestMapping("/listParam")
    @ResponseBody
    public String listParam(@RequestParam List<String> likes){
        System.out.println("集合参数传递 likes ==> "+ likes);
        return "{'module':'list param'}";
    }

POJO参数:

嵌套POJO:

数组参数:

集合参数:

正常名称对应名称,对不上@RequestParam

  传递json数据(常用):

json数组:

//POJO参数:json格式 pom.xml导入json
    //1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc
    //2.使用@RequestBody注解将外部传递的json数据映射到形参的实体类对象中,要求属性名称一一对应
    @RequestMapping("/pojoParamForJson")
    @ResponseBody
    public String pojoParamForJson(@RequestBody User user){
        System.out.println("pojo(json)参数传递 user ==> "+user);
        return "{'module':'pojo for json param'}";
    }

 

json对象(POJO):

json数组:(POJO):

@EnableWebMvc

@RequestBody用于接收json数据(常用)

三、日期类型参数传递

 

四、响应json数据

@ResponseBody

类型:方法注解

位置:SpringMVC控制器方法定义的上方

作用:设置当前控制器返回值作为响应体。

例如:

@RequestMapping("/toJsonPOJO")
    @ResponseBody
    public User toJsonPOJO(){
        System.out.println("返回json对象数据");
        User user = new User();
        user.setName("itcast");
        user.setAge(15);
        return user;
    }

依赖于HTTPMessageConverter接口