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 ..."; }