SpringMVC工作原理:
解释1:(1) Http请求
:客户端发送请求提交到前端控制器DispatcherServlet。
(2) 寻找处理器 :由DispatcherServlet控制器查询一个或多个HandlerMapping处理器映射器,找到处理请求对应的Controller。
(3) 调用处理器 :DispatcherServlet将请求提交到Controller。
(4)(5)调用业务处理和返回结果 :Controller调用业务逻辑处理后,返回一个ModelAndView对象。
(6)(7)处理视图映射并返回模型 : DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
(8) Http响应 :视图负责将结果显示到客户端。
(2) 寻找处理器 :由DispatcherServlet控制器查询一个或多个HandlerMapping处理器映射器,找到处理请求对应的Controller。
(3) 调用处理器 :DispatcherServlet将请求提交到Controller。
(4)(5)调用业务处理和返回结果 :Controller调用业务逻辑处理后,返回一个ModelAndView对象。
(6)(7)处理视图映射并返回模型 : DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
(8) Http响应 :视图负责将结果显示到客户端。
解释2:1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。