1、拦截*.do、*.htm, 例如:/user/add.do
这是最传统的方式,最简单也最实用。不会导致静态文件(jpg,js,css)被拦截。
2、拦截/,例如:/user/add
可以实现现在很流行的REST风格。很多互联网类型的应用很喜欢这种风格的URL。
弊端:会导致静态文件(jpg,js,css)被拦截后不能正常显示。想实现REST风格,事情就是麻烦一些。后面有解决办法还算简单。
3、拦截/*,这是一个错误的方式,请求可以走到Action中,但转到jsp时再次被拦截,不能访问到jsp。
<servlet-mapping>
<servlet-name>Spring-Servlet</servlet-name>
<!--<url-pattern>*.do</url-pattern>-->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--
对静态资源文件的访问 不支持访问WEB-INF目录
-->
<mvc:default-servlet-handler />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving
up static resources in the ${webappRoot}/resources/ directory -->
<!--静态资源-->
<!--
对静态资源文件的访问 支持访问WEB-INF目录
-->
<mvc:resources
mapping="/css/**"
location="/css/"
/>
<mvc:resources
mapping="/js/**"
location="/js/"
/>
<mvc:resources
mapping="/images/**"
location="/images/"
/>
本文探讨了Spring框架中Servlet拦截器匹配规则的一个常见错误——拦截/*。这种配置会导致请求能到达Action,但在转向jsp页面时再次被拦截,无法正常访问jsp。为了解决这个问题,文章提到了正确的servlet映射设置,并介绍了如何通过<mvc:default-servlet-handler />和<mvc:resources />标签来处理静态资源的访问,包括支持访问WEB-INF目录的静态资源。
343

被折叠的 条评论
为什么被折叠?



