SpringMVC中Servlet拦截器匹配规则

柯里薄雾
• 阅读 3178

其实Spring 的Servlet拦截器匹配规则(即 <url-pattern>...</url-pattern> )都可以自己定义,例:当映射为@RequestMapping("/user/add")时

  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 />
<!--处理HTTP请求/资源/ *有效地服务    在$ { webapproot } /资源/目录静态资源
-->
<!--静态资源-->
<!-- 对静态资源文件的访问 支持访问WEB-INF目录 -->
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/images/**" location="/images/" />
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
springmvc详解
spring和struts2的区别:1.springmvc是方法级别的拦截器,struts是类级别的拦截器,springmvc一个方法对应一个request上下文而struts2一个对象对应一个request上下文。springmvc无限接近于0配置,而struts需要大量的配置2.springmvc支持单例开发,二struts最好使用多例开发
Easter79 Easter79
3年前
springmvc 静态文件访问
//配置静态文件访问路径,防止被拦截器拦截注:\\表示匹配该路径下的所有路径<mvc:annotationdriven/<mvc:resourceslocation\"/WEBINF/static/js/"mapping\"/js/\\"/
Easter79 Easter79
3年前
springmvc之配置拦截器拦截相应的请求
在springmvc.xml文件中配置:<mvc:interceptors<!配置自定义的拦截器<beanclass"com.gong.springmvc.interceptors.FirstInterceptor"</bean<mvc:inte
Wesley13 Wesley13
3年前
Spring3 MVC详解
DispatcherServlet 前置控制器 使用SpringMVC,配置DispatcherServlet是第一步。DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,S
Stella981 Stella981
3年前
Spring RequestMapping检测路径匹配核心类AntPathMatcher
本文基于Spring5.0项目某些页面是通过后台映射的,匹配映射路径时,有那种路径参数匹配。其中一个定义好的路径匹配是:/{corporationName}_{vendorName}/{shopName}_with_{retailer_name}?g{goodsId}当时没有仔细看,其实{goodsId}也应该作为
Stella981 Stella981
3年前
Spring Boot 优雅的配置拦截器方式
其实springboot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了。下面主要介绍两种常用的拦截器:一、基于URL实现的拦截器:publicclassLoginInterceptorextendsHandlerInterceptorAdapter{/
Easter79 Easter79
3年前
SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
本文源码GitHub:知了一笑https://github.com/cicadasmile/springbootbase一、拦截器简介1、拦截器定义拦截器,请求的接口被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。拦截器主要用来按照指定规则拒
Stella981 Stella981
3年前
SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
本文源码GitHub:知了一笑https://github.com/cicadasmile/springbootbase一、拦截器简介1、拦截器定义拦截器,请求的接口被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。拦截器主要用来按照指定规则拒
Easter79 Easter79
3年前
SSM框架项目的mvc拦截器
为了防止用户在不登录的情况下通过并接请求直接访问系统,我们需要通过session和拦截器来防止这样的情况。拦截器的配置:为拦截器建立一个包:interceptor,并在包里建立LoginInterceptor拦截器类!(https://oscimg.oschina.net/oscnet/0c550371593ccb1aa7a33fa7b7
Stella981 Stella981
3年前
SSM框架项目的mvc拦截器
为了防止用户在不登录的情况下通过并接请求直接访问系统,我们需要通过session和拦截器来防止这样的情况。拦截器的配置:为拦截器建立一个包:interceptor,并在包里建立LoginInterceptor拦截器类!(https://oscimg.oschina.net/oscnet/0c550371593ccb1aa7a33fa7b7
京东云开发者 京东云开发者
1个月前
Spring 拦截器:你的请求休想逃过我的五指山!
拦截器概述在Spring框架中,拦截器(Interceptor)是一种强大的机制,它允许开发者在请求处理的不同阶段插入自定义逻辑。WebApplicationContext作为SpringWeb应用的上下文容器,为拦截器的配置和管理提供了基础支持。拦截器主