1. 程式人生 > >springmvc如何訪問靜態資源

springmvc如何訪問靜態資源

如果你的DispatcherServlet攔截的是*.do這樣的URL,就不存在訪問不到靜態資源的問題

如果你的DispatcherServlet攔截了"/"所有的請求,那同時對*.js,*.jpg的訪問也就被攔截了。

我們在進行springMVC開發時,必定會在jsp頁面引入js、img和css等檔案。

大多數人會將這些分類存放在WebRoot檔案下新建的資料夾下面。

同時,會在web.xml檔案中配置攔截所有請求。這樣就造成了頁面無法訪問到js、img和css資料夾中的檔案了

方法一:在web.xml中配置defaultServlet來處理靜態檔案

  1. <servlet-mapping
    >
  2.     <servlet-name>default</servlet-name>
  3.     <url-pattern>*.jpg</url-pattern>
  4. </servlet-mapping>
  5. <servlet-mapping>
  6.     <servlet-name>default</servlet-name>
  7.     <url-pattern>*.js</url-pattern>
  8. </servlet-mapping>
  9. <servlet-mapping>
  10.     <
    servlet-name>default</servlet-name>
  11.     <url-pattern>*.css</url-pattern>
  12. </servlet-mapping>

方法二:在Springmvc中可以利用mvc:resources

springmvc的<mvc:resources location="**" mapping="**"/>標籤是在spring3.0.4出現的,主要是用來進行靜態資源的訪問。

  1. <!-- 對靜態資原始檔的訪問 -->
  2. <mvc:resourceslocation=
    "/js/"mapping="/js/**"/>
  3. <mvc:resourceslocation="/img/"mapping="/img/**"/>
location指定靜態資源的位置

方法三:使用<mvc:default-servlet-handler/>

  1. <mvc:default-servlet-handler/>

最後再說明一下,如何你的DispatcherServlet攔截*.do這樣的URL,就不存上述問題了。