1.SpringMVC相关概念
1.1SpringMVC简介
SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
SpringMVC主要负责的就是
-
controller如何接收请求和数据.
-
如何将请求和数据转发给业务层
-
如何将响应数据转换成json发回到前端
SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 优点 使用简单、开发便捷(相比于Servlet) 灵活性强
demo1
// public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer { @Override protected WebApplicationContext createServletApplicationContext() { AnnotationConfigWebApplicationContext aw =new AnnotationConfigWebApplicationContext(); aw.register(SpringMvcConfig.class); return aw; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } @Override protected WebApplicationContext createRootApplicationContext() { return null; } } @Configuration @ComponentScan("com.scidag.controller") public class SpringMvcConfig { } @Controller public class UserController { @RequestMapping("/save") @ResponseBody public String save(){ System.out.println("user ..save"); return "{'info springmvc'}"; } }
1.2请求与响应
1.2.1请求路径设置
当多个请求路径相同时,会报错此时采用规范请求
@Controller
@RequestMapping("/book")
public class BookController {
@RequestMapping("/save")
@ResponseBody
public String BookSave(){
System.out.println("book save ..");
return "{book save}";
}
}
1.2.2响应
@RequestMapping("/tojsonpojo")
@ResponseBody
public User tojsonpojo(){
User user =new User();
user.setName("scidag");
user.setAge(16);
return user;
}
1.3REST风格
REST(Representational State Transfer),表现形式状态转换。
优点:
隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化
对于
@RequestMapping(value = "/users",method = RequestMethod.POST)
@ResponseBody
public String save(){
System.out.println("user save " ) ;
return "modele : user save";
}
这种方式太过于繁琐,所以使用了Rest风格
将上面代码改为
@RestController // @Controller+ @ResponBody
@RequestMapping ("/books")
public class UserController {
@PostMapping
public String save(){
...
}
}
通过这种方式提升了代码的简洁性
2.使用PostMan工具发送请求和数据
2.1简单参数
以上是get请求


设置springmvc参数乱码问题 ,在配置类中重写这个方法
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter ce=new CharacterEncodingFilter();
ce.setEncoding("UTF-8");
return new Filter[]{ce};
}
2.2复杂参数
使用之前在config中加@EnableWebMvc
@RequestMapping("/parmpojo")
@ResponseBody
public String UserPojo(User user){
System.out.println("pojo 参数--》" +user);
return "parmpojo ...";
}
@RequestMapping("/parmpojoandpojo")
@ResponseBody
public String UserPojo2(User user){
System.out.println("pojo and pojo ->>" +user);
return "pojo and pojo ...";
}
@RequestMapping("/parmarr")
@ResponseBody
public String UserArray(String []like){
System.out.println(Arrays.toString(like));
return "userarray ...";
}
@RequestMapping("/parmlist")
@ResponseBody
public String UserArray( @RequestParam List<String> like){
System.out.println(like);
return "userlsit ...";
}