SpringMVC拦截器拦截静态资源文件处理办法

SpringMVC可以设置资源放行,但是配置了SpringMVC拦截器,静态资源文件还是会被拦截

  • 资源放行代码如下:
<!--或者<mvc:resources location="/fonts/" mapping="/fonts/**"/>-->
<mvc:default-servlet-handler />

配置Interceptor拦截器

<!-- Springmvc拦截器 -->
	<mvc:interceptors>
	<!-- 多个拦截器 -->
		<mvc:interceptor>
			<mvc:mapping path="/**"/>
			<!--拦截标签-->
			<!--<mvc:mapping path="/**"/>-->
			<!-- 自定义的拦截器类 -->
			<bean class="top.maniy.interceptor.Interceptor"/>
		</mvc:interceptor>
	</mvc:interceptors>

静态资源文件会被拦截

两种处理方式:

第一种方式

在拦截器中加上排除拦截标签exclude-mapping
特点:不同类型的静态资源文件都要配置,项目大了比较臃肿

<!-- Springmvc拦截器 -->
	<mvc:interceptors>
	<!-- 多个拦截器 -->
		<mvc:interceptor>
			<mvc:mapping path="/**"/>
			<!--拦截标签-->
			<!--<mvc:mapping path="/**"/>-->
			<!--/排除拦截的标签-->

			<mvc:exclude-mapping path="/**/fonts/*"/>
			<mvc:exclude-mapping path="/**/*.css"/>
			<mvc:exclude-mapping path="/**/*.js"/>
			<mvc:exclude-mapping path="/**/*.png"/>
			<mvc:exclude-mapping path="/**/*.gif"/>
			<mvc:exclude-mapping path="/**/*.jpg"/>
			<mvc:exclude-mapping path="/**/*.jpeg"/>
			<!-- 自定义的拦截器类 -->
			<bean class="top.maniy.interceptor.Interceptor"/>
		</mvc:interceptor>
	</mvc:interceptors>

第二种方式

在web.xml上解除SpringMVC拦截器对静态资源文件的拦截
特点:静态资源处理操作交给了默认的Servlet

  解除SpringMVC拦截器对静态资源文件的拦截 
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.css</url-pattern>
        <url-pattern>/assets/*"</url-pattern>
        <url-pattern>/images/*</url-pattern>
    </servlet-mapping>

两种方法都可行,建议第二种

猜你喜欢

转载自blog.csdn.net/IManiy/article/details/82974973