Spring-Spring MVC简述(四)

使用Spring MVC需要在web.xml中配置DispatcherServlet,例如:
 <servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:spring-mvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>

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

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


Spring MVC 的Control

Control主要由 HandlerMapping 和 HandlerAdapter 完成,前者负责管理映射的URL和对应的处理类的关系,会根据URL返回一个HandlerEexcutionChain链,在链中添加任意HandlerAdapter的实例来处理URL请求。
HandlerMapping 初始化时完成的工作是,将URL和Handler的对应关系保存在一个handlerMap集合里 和 将所有interceptors对象保存在adaptedInterceptors数组中。当请求到来时先执行interceptors对象,这些对象必须继HandlerInterceptorAdapter接口。(即拦截器)
Control调用时序图如下:

再往下就是处理类的定义一般为xxxController,返回一般是一个ViewName,结合RequestToViewNameTranslator和 ViewResolver分别处理前缀后缀和页面解析的问题。

Spring MVC 的流程简述到此。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值