Spring MVC DispatcherServlet核心类的配置

319 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天

DispatcherServlet核心类

DispatcherServlet的本质是一个servlet,可以在web.xml文件中完成它的配置和映射,DispatcherServlet是Spring MVC的核心类,也是Spring MVC的流程控制中心,也称Spring MVC的前端控制器,它可以拦截客户端的请求。拦截客户端请求之后,DispatcherServlet会根据具体规则将请求交给其他组件处理。所有请求都要经过DispatcherServlet进行转发处理,这样就降低了Spring MVC组件之间的耦合性。

web.xml中对DispatcherServlet的配置分为两个方面:一个是配置Spring MVC的前端控制器,二是配置映射的URL路径

配置Spring MVC的前端控制器

<servlet>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <!--配置初始化参数,用于读取Spring MVC的配置文件-->
    <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>

配置映射的URL路径

<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

WEB-INF文件下默认配置文件命名规则

如果web.xml没有通过元素指定DispatcherServlet初始化时要加载的文件,则应用程序会去WEB-INF文件夹下寻找加载默认配置文件,默认配置文件的名称规则如下所示:

[servlet-name]-servlet.xml

其中,[servlet-name]指的是web.xml文件中元素的值,“-servlet.xml”是配置文件名的固定拼接。

因此,若未指定要加载的配置文件,应用程序会在WEB-INF文件夹下寻找并加载名称为DispatcherServlet-servlet.xml的配置文件

load-on-startup元素

用于指定DispatcherServlet是否在启动时加载。

  1. 如果该元素的值为正整数或0,表示在项目启动时就加载并初始化这个Servlet,值越小,Servlet的优先级越高,就越先被加载
  2. 如果该元素的值为负数或没有设置,则Servlet会在被请求时加载和初始化。