Spring-Spring MVC简述(四)

使用Spring MVC需要在web.xml中配置DispatcherServlet,例如:
 
  dispatcherServlet
  org.springframework.web.servlet.DispatcherServlet
  
   contextConfigLocation
   classpath:spring-mvc.xml
  
  1
 
 
  dispatcherServlet
  /
 

要了解Spring MVC,主要了解dispatcherServlet做了什么事。

dispatcherServlet 继承了 HttpServlet,在 Servlet 的 init 初始化方法调用了 DispatcherServlet,达到初始化MVC的目的。具体初始化了八个组件,有处理文件上传的,处理国际化的,定义主题的,定义映射关系的,定义处理规则的,处理错误的,指定ViewName前缀后缀的,将View解析成页面的。
上面八个组件,必须实现的是定义映射关系的(HandlerMapping),定义处理规则的(HandlerAdapter),将View解析成页面的(ViewResolver)。
Spring MVC初始化时序图如下:

Spring-Spring MVC简述(四)_第1张图片

Spring MVC 的Control

Control主要由 HandlerMapping 和 HandlerAdapter 完成,前者负责管理映射的URL和对应的处理类的关系,会根据URL返回一个HandlerEexcutionChain链,在链中添加任意HandlerAdapter的实例来处理URL请求。
HandlerMapping 初始化时完成的工作是,将URL和Handler的对应关系保存在一个handlerMap集合里 和 将所有interceptors对象保存在adaptedInterceptors数组中。当请求到来时先执行interceptors对象,这些对象必须继HandlerInterceptorAdapter接口。(即拦截器)
Control调用时序图如下:
Spring-Spring MVC简述(四)_第2张图片
再往下就是处理类的定义一般为xxxController,返回一般是一个ViewName,结合RequestToViewNameTranslator和 ViewResolver分别处理前缀后缀和页面解析的问题。

Spring MVC 的流程简述到此。

你可能感兴趣的:(spring)