spring-mvc里的 及靜態資源訪問


在進行Spring MVC的配置時,通常我們會配置一個dispatcher servlet用於處理對應的URL。配置如下:

復制代碼
    <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-mvc.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> 
復制代碼

 

只攔截.do請求配置如下:

<servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> 

 

 

這表示名字為 SpringMVC 的servlet會處理一切的url對應的請求,那么我們怎么讓servlet來處理項目中的靜態資源呢?這里有兩種方法。

  1. 另外使用一個servlet來處理靜態資源。若我們的資源放置在webapps文件夾下的resources文件夾中,那么我們可以用名字為default的servlet來處理靜態資源。因此我們還需要在上述配置的基礎上加上以下配置:

<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>resources/*</url-pattern> </servlet-mapping> 

這表示default的servlet會處理url中為resources/*的對應的請求。這樣,當你把你的image,css已經其他文件放在resources文件中時,spring就可以找到它啦。

 

2. 采用spring自帶<mvc:resources>方法。首先找到你定義的那個servlet的xml文件,如本例子中,servlet的名字叫mvc-dispatcher,因此需要找到mvc-dispatcher-servlet.xml文件,並在該文件中插入以下配置:

<mvc:annotation-driven/> <mvc:resources mapping="/resources/**/" location="/resources/"/> 

如此就不必另外添加一個mvc來處理靜態資源。而mvc知道靜態資源所處的位置為resources文件夾。
兩種方法都可以將spring mvc配置處理靜態資源。

 

在SpringMVC3.0之后推薦使用一: 

 <mvc:annotation-driven /> <mvc:resources location="/img/" mapping="/img/**"/> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/css/" mapping="/css/**"/> 

說明:

location元素表示webapp目錄下的static包下的所有文件;

mapping元素表示以/static開頭的所有請求路徑,如/static/a 或者/static/a/b;

該配置的作用是:DispatcherServlet不會攔截以/static開頭的所有請求路徑,並當作靜態資源

交由Servlet處理。

 

 

也可以使用二:

web.xml里添加如下的配置

復制代碼
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> 
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM