SpringMVC如何在web.xml中配置DispatcherServlet

发布时间 2023-09-22 23:10:11作者: 爱新觉罗LQ

SpringMVC如何在web.xml中配置DispatcherServlet

配置WEB-INF/web.xml ===> 配置 前端控制器 / 中央控制器 / 分发控制器,用户所有的请求都会经过它的处理

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 配置 前端控制器 / 中央控制器 / 分发控制器
        1. 用户的请求都会经过它的处理
    -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置属性 contextConfigLocation,指定 springDispatcherServlet 去操作的 Spring 配置文件 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext-mvc.xml</param-value>
        </init-param>
        <!--在 web 项目启动时,就自动地加载 DispatcherServlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <!-- 老师说明
            1. 这里我们配置的 url-pattern 是 /,表示用户的请求都经过 springDispatcherServlet
            2. 这样配置也支持 rest 风格的 url 请求
        -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

关于SpringMVC 的DispatcherServlet 的配置文件, 如果不在web.xml 指定 applicationContext-mvc.xml
默认在 /WEB-INF/springDispatcherServlet-servlet.xml 找这个配置文件

原因所在:
每一个DispatcherServlet有自己的WebApplicationContext上下文对象,同时保存在ServletContext中和Request对象中。在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean