还有个别标签后面再补上
其他文章的链接:可以结合一下
web.xml详解 及 web.xml模板
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="dataservice" version="3.0">
<!--指明项目名称 -->
<display-name>dataservice application</display-name>
<!-- 配置ContextLoader监听器-->
<!-- 在这个类中的定义了一个初始化容器方法,即当监听到ServletContext创建的时候,就会触发并创建spring容器-->
<!--
初始化的源码方法:
public void contextInitialized(ServletContextEvent event) {
initWebApplicationContext(event.getServletContext());
}
-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring监听器加载applicationContext.xml配置文件 -->
<!-- 其默认的 Spring 配置文件位置与名称为:WEB-INF/applicationContext.xml-->
<!-- 可以通过下面的进行自定义-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- spring字符过滤器 通过过滤器进行编码的统一-->
<filter>
<filter-name>encodingFilter</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>
<!-- 强制request使用encoding字符集-->
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<!-- 强制response使用encoding字符集-->
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<!-- 指定过滤的请求-->
<url-pattern>/ *</url-pattern>
</filter-mapping>
<!-- Spring mvc分发servlet -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定文件的位置
即默认要从项目根下的 WEB-INF 目录下找名称为 Servlet 名称-servlet.xml 的配置文件
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-mvc.xml</param-value>
</init-param>
<!-- 指定加载的时机-->
<!-- 标记是否在Web服务器(这里是Tomcat)启动时会创建这个 Servlet 实例-->
<!-- 即是否在 Web 服务器启动时调用执行该 Servlet 的 init()方法,而不是在真正访问时才创建-->
<!--
它的值必须是一个整数。
当值大于等于 0 时,表示容器在启动时就加载并初始化这个 servlet,数值越小,该 Servlet
的优先级就越高,其被创建的也就越早;
当值小于 0 或者没有指定时,则表示该 Servlet 在真正被使用时才会去创建。
当值相同时,容器会自己选择创建顺序。
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!-- 为什么要这样写呢? -->
<!-- 我觉得一方面是方便区分url(界面和servlet请求) 另一方面就是springmvc默认使用后缀匹配原则,文章在最后 -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 欢迎页,默认进入index controller -->
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
</web-app>
*.do的原因(应该是这样吧?嘿)
路径模式与后缀匹配