当前位置: 首页 > java>阅读正文

servlet-mapping路径问题

2021.12.20 朱丰华 1830 次 留下评论 1132字

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)被拦截

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注