请求
设置请求映射路径
-
设置请求路径前缀:类上面配置模块的请求映射与方法请求映射结合形成完整映射路径。
-
完整映射路径:类注解 + 方法注解
-
@Controller @RequestMapping("/user")//请求映射路径前缀 public class UserController { @RequestMapping("/save")//具体路径映射 @ResponseBody public String save(){ System.out.println("user save ..."); return "{'module':'user save'}"; } @RequestMapping("/delete")//具体路径映射 @ResponseBody public String delete(){ System.out.println("user delete ..."); return "{'module':'user delete'}"; } }
-
get请求与post请求发送普通参数
-
发送get请求
-
接收get普通参数
-
//普通参数:请求参数与形参名称对应即可完成参数传递 @RequestMapping("/commonParam") @ResponseBody public String commonParam(String name,int age){ System.out.println("普通参数传递 name ==> "+name); System.out.println("普通参数传递 age ==> "+age); return "{'module':'common param'}"; }
-
-
发送post请求
-
接受post普通参数
-
//普通参数:请求参数与形参名称对应即可完成参数传递 @RequestMapping("/commonParam") @ResponseBody public String commonParam(String name,int age){ System.out.println("普通参数传递 name ==> "+name); System.out.println("普通参数传递 age ==> "+age); return "{'module':'common param'}"; }
-
-
post请求参数汉字乱码问题
-
解决:在web服务器配置文件中重写过滤器
-
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer { protected Class<?>[] getRootConfigClasses() { return new Class[0]; } protected Class<?>[] getServletConfigClasses() { return new Class[]{SpringMvcConfig.class}; } protected String[] getServletMappings() { return new String[]{"/"}; } //汉字乱码处理 @Override protected Filter[] getServletFilters() { CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding("utf-8"); return new Filter[]{filter}; } }
-
-
5种类型参数传递
-
普通参数:请求参数名与形参名不同
-
//普通参数:请求参数名与形参名不同时,使用@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'}"; }
-
pojo参数:要求请求属性名与实体类属性名相同
-
//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递 @RequestMapping("/pojoParam") @ResponseBody public String pojoParam(User user){ System.out.println("pojo参数传递 user ==> "+user); return "{'module':'pojo param'}"; }
-
pojo参数嵌套pojo数据:
-
//嵌套POJO参数:嵌套属性按照层次结构设定名称即可完成参数传递 @RequestMapping("/pojoContainPojoParam") @ResponseBody public String pojoContainPojoParam(User user){ System.out.println("pojo嵌套pojo参数传递 user ==> "+user); return "{'module':'pojo contain pojo param'}"; }
-
数组参数:
-
//数组参数:同名请求参数可以直接映射到对应名称的形参数组对象中 @RequestMapping("/arrayParam") @ResponseBody public String arrayParam(String[] likes){ System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes)); return "{'module':'array param'}"; }
-
集合参数:集合参数前添加@RequestParam让list不被识别成pojo实体类
-
//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据 @RequestMapping("/listParam") @ResponseBody //集合参数前需要添加@RequestBody public String listParam(@RequestParam List<String> likes){ System.out.println("集合参数传递 likes ==> "+ likes); return "{'module':'list param'}"; }
请求参数传递JSON数据
-
导入json坐标:
-
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency>
-
-
开启json数据格式的自动转换:@EnableWebMvc
-
@Configuration @ComponentScan("com.itheima.controller") @EnableWebMvc//开启json数据类型自动转换 public class SpringMvcConfig { }
-
-
json-普通集合参数:@RequestBody注解将外部传递的json数组数据映射到形参的保存实体类的集合对象中,要求属性名对应。
-
//集合参数:json格式 @RequestMapping("/listPojoParamForJson") @ResponseBody public String listPojoParamForJson(@RequestBody List<User> list){ System.out.println("list pojo(json)参数传递 list ==> "+list); return "{'module':'list pojo for json param'}"; }
-
json-pojo参数:@RequestBody注解将外部传递的json数组数据映射到形参的保存实体类的集合对象中,要求属性名对应。
-
//POJO参数: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格式 @RequestMapping("/listPojoParamForJson") @ResponseBody public String listPojoParamForJson(@RequestBody List<User> list){ System.out.println("list pojo(json)参数传递 list ==> "+list); return "{'module':'list pojo for json param'}"; }
日期型参数传递
-
//日期参数 //使用@DateTimeFormat注解设置日期类型数据格式,默认格式yyyy/MM/dd @RequestMapping("/dataParam") @ResponseBody public String dataParam(Date date, @DateTimeFormat(pattern="yyyy-MM-dd") Date date1, @DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date2){ //@DateTimeFormat:用于设定传递日期参数的格式。 System.out.println("参数传递 date ==> "+date); System.out.println("参数传递 date1(yyyy-MM-dd) ==> "+date1); System.out.println("参数传递 date2(yyyy/MM/dd HH:mm:ss) ==> "+date2); return "{'module':'data param'}"; }
-
Converter接口:类型转换器
-
请求参数年龄数据(String->Integer)
-
日期格式转换(String->Date)
-
@EnableWebMvc功能之一:根据类型匹配对应的类型转换器