1. SpringMVC执行流程 ★★★★★
Spring MVC主要由DispatcherServlet、处理器映射【找控制器】、适配器【调用控制器的方法】、控制器【业务】、视图解析器、视图组成。
① 实现: Struts2是基于过滤器实现的。Springmvc基于servlet实现。
② 速度: Servlet比过滤器快。
③ 单例/多例: Struts2是多例,每一次请求,都会创建一个Action对象请求来了以后,struts2创建多少个对象:ActionContext,valuestack,UAction,ActionSuport,ModelDriven。Springmvc是单例。同一个Controller请求,只会创建一个Controller。
④ 参数封装:Struts基于属性进行封装,Action有参数属性。Springmvc基于方法封装,参数是写在Controller的方法。
3. ResponseBody、RequestBody
@ResponseBody把后台pojo转换json对象,返回到页面。
@RequestBody接受前台json数据,把json数据自动封装javaBean。
@RequestMapping(value="/com/{uid}", method=RequestMethod.GET)
public List<Map<String, Object>> getUser(@PathVariable("uid") Integer id) {
return userService.getUserById(id);
}
@RequestMapping(value="/com", method=RequestMethod.POST) public List<Map<String, Object>> getUser(@RequestParam("id") Integer id) { return userService.getUserById(id); }
PathVariable有value,name,required这三个参数,而RequestParam也有这三个参数,并且比PathVariable多一个参数defaultValue(该参数用于当请求体中不包含对应的参数变量时,参数变量使用defaultValue指定的默认值)。
public List<Role> findRoleByAnnotation(@Param("roleName") String roleName, @Param("note") String note);