springMVC工作原理
1.springMVC工作流程图:
2.springMVC工作流程:
① 浏览器发送请求被核心控制器DispatcherServlet捕获。
② DispatcherServlet解析请求URL得到URI(请求资源标识符),然后根据该URI调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后返回一个HandlerExecutionChain对象。
③ DispatcherServlet根据获得的Handler,选取一个合适的HandlerAdapter。(得到HandlerAdapter后将执行拦截器的preHandler()方法)
④ 提取请求中的模型数据传入参数执行Handler(即Controller)。在传参过程中:
•HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。
•数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。
•数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等。
•数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。
⑤ Handler执行完后,向DsipatcherServlet返回ModelAndView对象。
⑥ 根据返回的ModelAndView,选取一个合适的ViewResolver返回给DispatcherServlet。
⑦ ViewResolver渲染视图。
⑧ 将渲染结果返回给浏览器。