Spring项目web.xml详解

web-app标签

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">


</web-app>

欢迎页

1
2
3
4
<!--  欢迎页  默认是 webapp/index.jsp -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

指定Web程序显示名称

1
2
<!--  指定Web程序显示名称-->
<display-name>16</display-name>

定义Servlet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  <servlet>
<!-- 定义一个名为springmvc的Servlet,并指定DispatcherServlet类来处理请求。-->
<servlet-name>springmvc</servlet-name>
<!-- 这个 Servlet 是 Spring MVC 框架的核心,用于处理所有的客户端请求。-->
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- 设置该Servlet初始化参数-->
<init-param>
<!-- contextConfigLocation 就是一个 Servlet 初始化参数值-->
<param-name>contextConfigLocation</param-name>
<!-- 指定beans.xml文件来初始化Spring IOC容器-->
<!-- classpath: 表示根路径为resource下的文件-->
<param-value>classpath:beans.xml</param-value>
</init-param>
<!-- 设置Servlet在应用启动是自动加载的顺序,设置为1,表示程序启动就加载,保证最先被执行-->
<load-on-startup>1</load-on-startup>
</servlet>


<!-- 将springmvc这个Servlet映射到SpringMVC容器下-->
<!-- 可以说SpringMVC的容器接管了Spring的容器,代替Spring容器处理请求-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- url-pattern的值为/,表示接管全部请求,如果设置/hello,则只有当请求/hello/*后面的请求才会被Springmvc接管处理-->
<url-pattern>/</url-pattern>
</servlet-mapping>

编码过滤器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  <filter>
<!-- 设置一个过滤器的名称-->
<filter-name>encoding</filter-name>
<!-- 该过滤器指定使用CharacterEncodingFilter类来处理-->
<!-- 这个过滤器类实现了 javax.servlet.Filter 接口,并且为每个请求和响应对象设置了字符编码格式-->
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<!-- 设置参数,参数值设置UTF-8-->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>

<!-- 和上面的springmvc一样,将encoding全部映射到这里,即全部请求都使用UTF-8请求-->
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

资源过滤

如果没有设置静态资源过滤,有时候浏览器访问这些资源是会被拦截了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!--  设置静态资源不被拦截-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.eot</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.woff</url-pattern>
</servlet-mapping>

本文章来源于我的博客:https://blog.hikki.site