Spring MVC 原理小结

主要由DispatcherServlet、处理器映射、处理器、视图解析器、视图组成
 
1.DispatcherServlet接收到一个HTTP请求,根据对应配置文件中的处理机映射,找到处理器(Handler)

点击(此处)折叠或打开

  1. <property name="mappings">
  2.             <props>
  3.                 <prop key="login.do">loginControler</prop>
  4.                 <prop key="userFormcontroler.do">userFormcontroler</prop>
  5.             </props>
  6.         </property>
2.调用Handler中的方法,处理该请求,处理完后返回一个ModelAndView类型的数据给DispatcherServlet

点击(此处)折叠或打开

  1. public class UserFormControler extends AbstractCommandController {
  2.     private String result;
  3.     // 相当于Action中的execute
  4.     protected ModelAndView handle(HttpServletRequest request,
  5.             HttpServletResponse response, Object obj,
  6.             BindException bindexception) throws Exception {
  7.         // 将页面返回的数据丢到obj中来
  8.         UserBean user = (UserBean) obj;
  9.         System.out.println(user.getName());
  10.         // 将数据封装成一个map丢到V层去
  11.         Map<String, Object> map = new HashMap<String, Object>();
  12.         map.put("user", user);
  13.         return new ModelAndView(this.result, map);
  14.     }
  15. }
其中包含了处理结果的视图和视图中要使用的数据。
 
3.DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。
 
DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:
1)截获符合特定格式的URL请求。
2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。
 
 
原文地址:https://www.cnblogs.com/dingjiaoyang/p/5365408.html