springmvc dispatcherServlet url-pattern的设置

本文探讨了SpringMVC中DispatcherServlet的URL模式配置。详细分析了/与/*的区别,解释了这两种配置如何影响静态资源的处理及默认servlet的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<url-pattern>/*</url-pattern>

设置为/*,springmvc DispatcherServlet将会override所有其他的servlet,包括由servlet容器提供的默认的servlet以及jsp servlet。你的任何请求将都会进入到这个servlet中,所以这并不是一个好的配置方式。

这种/*的配置多用在过滤器Filter中。

 

<url-pattern>/</url-pattern>

设置为/,并不会override任何其他的servlet。它只是替换了servlet容器内置的默认servlet的部分功能,用于所有对于其他注册servlet都不匹配的请求。通常情况下,对静态资源(CSS/JS/image)以及directory listings(/register,etc)这样的请求会触发。

而servlet容器内置的默认servlet 还能够处理 HTTP 缓存请求、媒体 (音频/视频) 流和文件下载恢复等。通常情况下,你并不想重写默认servlet,因为这样你将会有很多的任务要处理,这是不容易的。

至于说为什么配置了/,我们还可以访问jsp呢?jsp并没有进入到dispatcherServlet中进行处理,原因是当进行*.jsp请求的时候,servlet容器提供的内置的jsp servlet将会被调用。

 

如果配置为<url-pattern>/</url-pattern>,如何保证静态内容不进入dispatcherServlet中呢?

可以参考: springmvc使静态资源不进入DsipatchServlet的两种设置方法

 

参考:Difference between / and /* in servlet mapping url pattern

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值