名词解释:
DispatcherServlet是前置控制器,配置在web.xml文件中的。它的作用是接受用户请求信息(比如URL、Http方法和请求参数等等)来决定该选择哪一个页面控制器处理用户需求。主要用作职责调度工作。可以理解为一个Boss,接收项目来负责调度员工完成项目。
HandlerAdapter:处理适配器,是一个接口。调用具体的方法对用户发来的请求来进行处理
HandlerMapping:映射处理器。里面有处理各种请求的方法映射
Handler:处理器。被HandlerAdapter调度的方法,将具体的处理进行了封装。
ModelAndView:模型与视图。顾名思义,一次性返回了模型和逻辑视图给前端控制器。
ViewResolver:视图解析器。将传入的逻辑视图解析渲染成为页面可以显示的视图。
Controller:处理器/页面控制器。从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观角度考虑,Controller是单个Http请求处理过程中的控制器。
SpringMVC工作原理:
1.用户通过浏览器(客户端)发出一个HTTP请求给web端服务器,之后web端的服务器对该HTTP请求进行解析,如果匹配到DispatcherServlet的请求映射路径(在web.xml中指定),那么服务器将请求交给DispatcherServlet全权处理。
2.DispatcherServlet接收到请求之后将请求信息通过HandlerMapping的配置找到能处理请求的处理器Handler
3-4.找到对应的Handler之后,DispatcherServlet把处理权交给Handler,再由具体的HandlerAdapter进行处理请求。
5.Handler对数据处理完成之后,返回一个ModelAndView()对象给DispatcherServlet。此时注意返回的视图只是逻辑视图,所以并不能直接显示在前端页面。
6.DispatcherSevlet将接收到ModelAndView()对象通过视图解析器ViewResolver进行解析渲染成为真正的视图。
7.DispatcherSevlet将最终的结果展示为完整的view返回给客户端展示给用户