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>

兩種方法都可行,建議第二種

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章