SpringMVC

SpringMVC原理:

  SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求达到SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配的url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用响应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。

  DispatcherServlet作为SpringMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户。

  实现业务操作时在service层。

  •  前端控制器:接受请求,响应结果,返回的可以是json,String等数据类型,也可以是页面Model
  • 处理映射器:根据url区查找处理器,一般通过XML配置或者注解进行查找
  • 处理器:controller,程序员编写
  • 处理器适配器:可以将处理器包装成适配器,这样就可以支持多种类型的处理器
  • 视图解析器:进行视图解析,返回view对象

执行过程

  1. 用户向Spring容器发送一个http请求,请求被前端控制器(DispatcherServlet)拦截
  2. 前端控制器将会调用恰当的处理器映射器(HandlerMapping),处理器映射器其实记录url到请求方法映射们根据url就可以寻找到对应的方法,就像一个HashMap,其实Key就是注解后面的字符串,Value就是方法对象。比如@RequestMapping(“/list”),当浏览器中键入list.action就会自己调用注解下面的方法。
  3. 处理器映射器会返回一个处理器执行链,里面包含了很多拦截器,拦住了就踢出去,没拦住就继续执行,把controller缴费前端控制器。
  4. 此时前端控制器不会执行你写的controller,而是将执行权交给处理器适配器(Handler Adapter),让适配器去执行controller。因为前端控制器要处理的东西很多,而且controller是你自己写的代码,可能会有很多不同形式的controller,这里统一交给处理器适配器,就好比一台笔记本电脑只有usb接口,但是它既可以接键盘,又可以接网线,。。。
  5. 处理器适配器选择不同的处理器处理handler。
  6. 处理器处理完了返回不同的ModelAndView,model里面放数据,view里面放返回哪个页面。
  7. 将ModelAndView返回给前端控制器。
  8. 前端控制器找视图解析器解析,它的作用就是解析视图
  9. 视图解析器解析以后返回给view。
  10. DispatcherServlet对view今夕渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户。

 

posted @ 2019-09-02 10:30  wudidamowang666  阅读(133)  评论(0编辑  收藏  举报