关于spring mvc拦截器拦截js文件等导致无法正常使用问题的解决

本文介绍如何在SpringMVC中正确配置登录拦截器,确保静态资源不被拦截,同时详细解释了配置中的关键元素及常见问题解决方案。

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

在用spring mvc提供的拦截器做登录拦截的时候,我们经常需要编写自定义的登录拦截器,经常会发现拦截器无法使用或者是exclude-mapping无法起作用,总是被拦截,其原因主要是由于静态资源文件被拦截的原因,chrome浏览器中按f12,在network会发现js文件或者css文件等报红色的情况,这个时候虽然在spring-servlet里面配置了类似下面的资源
<mvc:resources location="/pages/" mapping="/pages/**"/>
<mvc:resources location="/styles/" mapping="/styles/**"/>
<mvc:resources location="/scripts/" mapping="/scripts/**"/>
mvc:interceptors>
        <!-- 配置登录拦截 -->
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/auth/**"/>
            <bean class="com.ctrip.sp.cs.intercepter.LoginIntercepter"/>
        </mvc:interceptor>
</mvc:interceptors>
但是貌似静态资源的配置不会起作用,这个时候我们还是需要将resource文件加入到拦截器例外exclude-mapping中来:修改后如下:
<mvc:resources location="/pages/" mapping="/pages/**"/>
	<mvc:resources location="/styles/" mapping="/styles/**"/>
	<mvc:resources location="/scripts/" mapping="/scripts/**"/>
	<mvc:interceptors>
        <!-- 配置登录拦截 -->
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/auth/**"/>
            <mvc:exclude-mapping path="/pages/**"/>
            <mvc:exclude-mapping path="/styles/**"/>
            <mvc:exclude-mapping path="/scripts/**"/>
            <bean class="com.ctrip.sp.cs.intercepter.LoginIntercepter"/>
        </mvc:interceptor>
	</mvc:interceptors>
这个时候就会发现可以正常使用了,js也不会被拦截了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值