web.xml常用配置详解

时间:2022-05-22 20:07:32

web.xml常用配置详解

context-param

指定 ServletContext(上下文) 配置文件路径,基本配置一般是Spring配置文件,或者是spring-security的配置文件。注意springmvc的配置文件是在servlet那里加载,mybatis的配置文件是在spring的主配置文件里注册sqlSessionFactory的时候加载的。

<context-param>
<param-name>contextConfigLocation</param-name>
<!--<param-name>指定上下文名称,一般为:名称+ConfigLocation后缀,如:contextConfigLocation,不可随意定义,否则指定的配置文件无法加载成功,实际上它是org.springframework.web.servlet.FrameworkServlet中的一个成员变量 -->
<param-value>classpath:spring-security.xml</param-value>
<!--<param-value>指定上下文路径,如:classpath:applicationContext.xml-->
</context-param>

listener

<listener-class>基本配置包含ContextLoaderListener ,即spring监听器

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

servlet

  1. <servlet-name>Servlet名称,可以自定义,但是需要遵守规则:比如指定为Spring,那么最好在classpath路径中配置Spring-servlet.xml,否则需要在子元素<init-param>特别指出

  2. <servlet-class>因为要配置MVC,所以指定为:org.springframework.web.servlet.DispatcherServlet

  3. <init-param>[定义容器启动时初始化的配置文件,作用主要是指定自定义配置文件的路径,貌似可以指定多个]

    1. <param-name>[contextConfigLocation]

    2. <param-value>[可以自定义,如:classpath:spring-servlet.xml,如果不定义,那么默认为:classpath:${servlet-name}-servlet.xml]

    3. <load-on-startup>[定义为1,表示启动等级]

<!-- 配置 spring mvc 的核心控制器 -->
<servlet>
<servlet-name>springmvcDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置初始化参数,用于读取 springmvc 的配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:dispatcher.xml</param-value>
</init-param>
<!-- 配置 servlet 的对象的创建时间点:应用加载时创建。取值只能是非 0 正整数,表示启动顺 序 -->
<load-on-startup>1</load-on-startup>
</servlet>

servlet-mapping

与servlet相对应

  1. <servlet-name>与对应的servlet的name保持一致
  2. <url-pattern>一般定义为“/”,表示所有请求都通过DispatcherServlet来处理,但是这样处理的话会使静态资源都经过springmvc的*调度器,而*调度器不处理静态资源请求。所以我还是习惯用一个*.do这样的特殊路径格式。
<servlet-mapping>
<servlet-name>springmvcDispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

filter

过滤器,常用于字符集编码过滤,解决中文乱码问题

<!-- 配置 springMVC 编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- 设置过滤器中的属性值 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<!-- 启动过滤器 -->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

filter-mapping

与filter相对应

<!-- 过滤所有请求 -->
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

由于idea默认的web.xml的版本太老,一般我们还是要用一用新版本的,可以在模块那里删掉原来的web.xml,新建一个web1.xml就会是4.0版本的。但是记得改回web.xml这个名字。当然,更方便的就是直接粘贴下面的配置就行了。

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"> </web-app>