servlet-mapping用于配置servlet映射,以下给出一些常用示例:
- 使用 / 表示任意一个无后缀的地址
- 使用 /* 表示所有地址
- 使用 /*.do 表示所有 .do 结尾的路径
- 使用 /user/* 表示所有/user/子目录的路径
其中 / 可以表示任意无后缀地址,比如 /abc 或 /abc/ddd 或 /sfef/fsdfewf/ 或 /fsdfew* 等
注意 * 仅在 / 后面才表示通配符,否则表示普通字母。
SpringMVC配置Servlet-Mapping示例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!--
前端控制器:所有的请求都会经过此控制器,然后通过此控制器分发到各个分控制器
总控本质上还是一个Servlet,因为SpringMVC底层就是使用Servlet编写的
-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 创建前端控制器的时候读取springmvc配置文件(spring-mvc.xml)启动ioc容器 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!-- Tomcat启动就创建此对象 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置拦截路径url,所有servlet无后缀都会被前端控制器拦截处理 -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
通常使用 / ,而不能使用 /* ,否则会导致其他文件(如 .jsp)被拦截
本篇完,还有疑问?留下评论吧