1. 程式人生 > >SpringMVC設定靜態資源不攔截三種方式

SpringMVC設定靜態資源不攔截三種方式

1、前端控制器的配置

在web.xml中配置

<!-- springmvc的前端控制器 -->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation<
/param-name> <param-value>classpath:spring/springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <!--
攔截所有請求 --> <url-pattern>/</url-pattern> </servlet-mapping>

/ 表示攔截所有的請求,包括靜態資源

<url-pattern>/</url-pattern> --表示攔截所有的請求,包括靜態資源

2、去靜態資源攔截有三種方式

1、在web.xml中配置對映 2、在springMVC.xml中配置對映 3、在springMVC.xml中新增靜態資源預設Servlet處理

3、方式一

在web.xml中配置對映

 <!-- 對靜態資源的配置 -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.css</url-pattern>
        <url-pattern>*.ico</url-pattern>
        <url-pattern>/img/*</url-pattern>
        <url-pattern>/fonts/*</url-pattern>
        <url-pattern>/font/*</url-pattern>
    </servlet-mapping>

可以根據自身情況,來配置對映

注意: 請將它放在所有Servlet的最前面(為了讓它最先匹配),這樣的話效能上應該比較好 

4、方式二

在springMVC.xml中新增靜態資源的對映

<!--
    通過mvc:resources設定靜態資源,這樣servlet就會處理這些靜態資源,而不通過控制器
    設定不過濾內容,比如:css,js,img 等資原始檔
   location指的是本地的真實的物理路徑 ,mapping指的是對映到的虛擬路徑(比如前端請求的url地址)。-->
    <mvc:resources mapping="/css/**" location="/css/**"/>
    <mvc:resources mapping="/js/**" location="/js/**"/>
    <mvc:resources mapping="/images/**" location="/images/**"/>

根據實際情況自行配置

5、方式三

在springMVC.xml中新增靜態資源預設Servlet處理

<mvc:default-servlet-handler/>

注意: 這種方式對spring版本必須要求3.0.5及以上