總結springmvc訪問靜態資源的三種方式
阿新 • • 發佈:2019-01-23
前不久發現自己使用springmvc框架做專案時,總是發現有些靜態資源載入不到,然後自己就去百度了一波,現在趁還記得,趕快寫出來
最重要的一點寫前面,springmvc中的的DispatcherServlet的url對映地址一定要注意
web.xml
這個url對映地址一定要是一個/,如果它是一個/* 它會把不管什麼請求都給攔截掉,並且在controller返回時把返回的jsp頁面再次攔截,一旦DispatcherServlet中<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <<url-pattern>/</url-pattern> </servlet-mapping>
裡面沒有對應的對映,那麼它就會報404錯誤。
第一種是通過Tomcat伺服器中的defaultServlet來處理靜態資源
使用這種方式的話,你必須要把這段配置寫在DispatcherServlet配置的前面,並且向這種servlet你可以自己寫多個,想處理什麼型別的<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> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
靜態資源,就把那種型別填上去
第二種是通過在springmvc.xml中配<mvc:default-servlet-handler/>
後面框架會把它轉到使用就是各個 Servlet 容器自己的預設 Servlet中來處理靜態資源
第三種是通過<mvc:resources> 來配置,自己感覺這種方法還是挺便捷的
用法挺簡單的,location是指訪問的靜態資源在webapp目錄下哪個資料夾下或者就是webapp目錄下,<!-- 配置靜態資源的處理方式 --> <mvc:resources location="/css/" mapping="/css/**" /> <mvc:resources location="/js/" mapping="/js/**" /> <!-- 處理webapp下面的靜態資源 --> <mvc:resources location="/WEB-INF/" mapping="/**.html" />
並且這個配置你還能直接訪問web-inf目錄下面的靜態資源,知識在配置location是把web-info目錄加上就行了
mapping是指對映,是指你訪問的是在哪個路徑下什麼型別的靜態資源,只需要在該目錄下加上檔案型別就好了,這裡要特意說下
檔案型別前面的那個*號是兩個,不是一個!