Servlet 的 URLPattern配置

Servlet 的 URLPattern(URL 模式)用于定义 Servlet 的访问路径,决定了客户端如何通过 URL 访问 Servlet。URLPattern 可以在 @WebServlet 注解或 web.xml 中配置。

URLPattern 的匹配规则

URLPattern 支持多种匹配方式,包括精确匹配、路径匹配、扩展名匹配和默认匹配。以下是常见的匹配规则:

精确匹配 精确匹配要求 URL 完全匹配指定的路径。例如:

java 复制代码
@WebServlet("/hello")
 

可以匹配 /hello/a/hello/b 等路径,但不能匹配 /hello

扩展名匹配 扩展名匹配以 *. 开头,匹配指定扩展名的请求。例如:

java 复制代码
@WebServlet("*.do")
 

可以匹配 /test.do/user/list.do 等路径。

默认匹配 默认匹配使用 /,通常用于默认 Servlet。例如:

java 复制代码
@WebServlet("/")
 

匹配所有未被其他 Servlet 处理的请求。

URLPattern 的优先级

当多个 URLPattern 可能匹配同一个请求时,Servlet 容器会按照以下优先级选择最具体的匹配:

  1. 精确匹配
  2. 路径匹配(最长路径优先)
  3. 扩展名匹配
  4. 默认匹配

在 web.xml 中配置 URLPattern

web.xml 中,可以通过 <url-pattern> 标签配置 URLPattern:

xml 复制代码
<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
 

多 URLPattern 配置

一个 Servlet 可以配置多个 URLPattern:

java 复制代码
@WebServlet({"/hello", "/world"})
 

注意事项

  • URLPattern 区分大小写,具体行为取决于 Servlet 容器的实现。
  • 避免在 URLPattern 中使用 / 结尾的路径,除非明确需要路径匹配。
  • 默认 Servlet 的 URLPattern 为 /,通常用于处理静态资源或未匹配的请求。
相关推荐
vx_Biye_Design3 天前
【关注可免费领取源码】房屋出租系统的设计与实现--毕设附源码40805
java·spring boot·spring·spring cloud·servlet·eclipse·课程设计
vx_Biye_Design3 天前
基于Spring Boot+vue的湖北旅游景点门票预约平台的设计--毕设附源码29593
java·vue.js·spring boot·spring cloud·servlet·eclipse·课程设计
lang201509283 天前
JSR-340 :高性能Web开发新标准
java·前端·servlet
铅笔侠_小龙虾4 天前
Flutter 组件层级关系
前端·flutter·servlet
csdn2015_5 天前
Spring Boot `HttpServletRequest`
spring boot·http·servlet
GIOTTO情6 天前
舆情监测技术实战:Infoseek字节探索破解传统监测痛点
servlet
一勺菠萝丶6 天前
Jenkins 构建日志出现 `[INFO]` 乱码?原因与完整解决方案(小白必看)
java·servlet·jenkins
好好研究6 天前
SpringBoot扩展SpringMVC
java·spring boot·spring·servlet·filter·listener
gAlAxy...7 天前
SpringBoot Servlet 容器全解析:嵌入式配置与外置容器部署
spring boot·后端·servlet
Hx_Ma167 天前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet