史上最牛逼的SpringMVC学习总结
一、常用组件
1. DispatcherServlet
是一种前端控制器,由框架提供 作用:统一处理请求和响应,是SpringMVC流程的控制中心,由DispatcherServlet调用其他组件处理请求。
2. HandlerMapping
处理器映射器,有框架提供 作用:通过url、method等信息来查找具体的Handler(一般就是Controller)
3. Handler(一般来讲是Controller)
处理器,就是java后端开发的Controller层 作用:在DispatcherServlet控制下,Handler对具体用户的请求进行处理
4. HandlerAdapter
处理器适配器,由框架提供 作用:根据映射器找到的处理器 信息,按照特定的规则去执行相关的处理器 Handler。
小结:
Handler 是用来干活的工具; HandlerMapping 用于根据需要干的活找到相应的工具; HandlerAdapter 是使用工具干活的人
5. ViewResolver
视图解析器,由框架提供 ViewResolver将处理结果生成View视图。ViewResolver首先将逻辑视图名解析成物理视图名,即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
6. View
视图,工程师自己开发 作用:View接口的职责就是接收对象、Request对象、Response对象,并渲染输出结果给Response对象。
二、SpringMVC的工作流程
顺时针走
具体流程
1. 用户通过浏览器发起 请求到前端控制器 (DispatcherServlet)。 2. DispatcherServlet 将用户请求发送给处理器映射器 (HandlerMapping)。 3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet 4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) --注,处理器适配器有多个 5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller 6. Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor) 7. HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕 8. 业务处理完毕后,我们需要将处理结果展示给用户。于是DisptcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象 9. ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet 10. DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse) 11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。
上一篇:
通过多线程提高代码的执行效率例子