码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC介绍

时间:2020-03-22 01:37:33      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:pat   mode   patch   http   客户   基于   ros   src   控制器   

1. SpringMVC执行流程 ★

 技术图片

Spring MVC主要由DispatcherServlet处理器映射【找控制器】、适配器【调用控制器的方法】、控制器【业务】、视图解析器视图组成。

(1) 客户端请求提交到 DispatcherServlet控制器。
(2) 由 DispatcherServlet 控制器查询一个或多个 HandlerMapping,找到处理请求的Controller
(3) DispatcherServlet 将请求提交到 Controller。
(4)(5)调用业务处理和返回结果:Controller 调用业务逻辑处理后,返回 ModelAndView
(6)(7)处理视图映射并返回模型: DispatcherServlet 查询一个或多个 ViewResoler 视图解析器,找到 ModelAndView 指定的视图。
(8) Http 响应:视图负责将结果显示到客户端。 
 
2. SpringMVC 和 Struts区别

 ① 实现: 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。

 
4. PathVariable、RequestParam、Param
  @PathVariable用于请求URL模板中的变量作为参数。

@RequestMapping(value="/com/{uid}", method=RequestMethod.GET)
public List<Map<String, Object>> getUser(@PathVariable("uid") Integer id) {
return userService.getUserById(id);
}

  @RequestParam主要用于接受请求带的参数。类似于一种request.getParameter("name");
@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指定的默认值)。

  @Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应,一般在2=<参数数<=5时使用最佳。
public List<Role> findRoleByAnnotation(@Param("roleName") String roleName, @Param("note") String note);

 

 
 
 
 
 
 
 
 
 
 
 

SpringMVC介绍

标签:pat   mode   patch   http   客户   基于   ros   src   控制器   

原文地址:https://www.cnblogs.com/qmillet/p/12543669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!