Spring MVC的DispatcherServlet

Spring MVC提供了一个名为org.springframework.web.servlet.DispatcherServlet的Selvet充当前端控制器,所有的请求驱动都围绕这个DispatcherServlet来分派请求。

DispatcherServlet是一个Servlet(继承自HttpSerlvet基类),因此使用时需要把它配置在Web应用的部署描述web.xml中

 <servlet>
      <!-- Serlvet的名称 -->
    <servlet-name>springmvc</servlet-name>
    <!-- Serlvet对应的java类 -->
    <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <!-- 当前Serlvet的参数信息 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/springmvc-config.xml</param-value>
    </init-param>
    <!-- 在Web应用启动时立即加载Serlvet -->
    <load-on-startup>1</load-on-startup>
  </servlet>
   <!-- 让Spring MVC的前端控制器拦截所有请求 -->
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

 

该Servlet在Web应用程序启动时立即加载,DispatcherServlet加载时需要一个Spring MVC的配置文件,默认情况下,应用会去应用文件夹的WEB-INF下查找对应的[servlet-name]-servlet.xml文件(例如本例中的<serlvet-name>是springmvc,默认查找的是/WEB-INF/springmvc-serlvet.xml)

也可以把Spring MVC的配置文件放到应用程序文件夹的任何地方,用Serlvet元素的init-param子元素进行描述,本例的param-name元素的值contextConfigLocation表示参数名称,param-value元素的值/WEB-INF/springmvc-config.xml则表示Spring MVC的配置文件路径和名称。则DispatcherServlet会查找/WEB-INF/springmvc-config.xml文件,作为Spring MVC的配置文件。解析该文件内容并根据文件配置信息创建一个WebApplicationContext容器对象,也称为上下文环境。WebApplicationContext继承自ApplicationContext容器,它的初始化方式和BeanFactory,ApplicationContext 有所区别,因为WebApplicationContext需要SerlvetContext实例,它必须是在拥有Web容器的前提下才能完成启动Spring Web应用上下文的工作。有了WebApplicationContext容器,开发者就可以很自然的使用Spring IOC,AOP等其他功能。

posted @ 2018-01-31 08:42  ZZUGPY  阅读(152)  评论(0编辑  收藏  举报