静态资源java 配置文件_java web 静态资源访问配置三种方式
方案一:Tomcat的defaultServlet來處理靜態文件
要放在DispatcherServlet的前面, 讓?defaultServlet先攔截請求,這樣請求就不會進入Spring了
方案二: 在spring3.0.4以后版本提供了mvc:resource
/images/**映射到ResourceHttpRequestHandler進行處理,location指定靜態資源的位置.可以是web application根目錄下、jar包里面,這樣可以把靜態資源壓縮到jar包中。cache-period 可以使得靜態資源進行web cache
如果出現下面的錯誤,可能是沒有配置的原因。
報錯WARNING: No mapping found for HTTP request with URI [/mvc/user/findUser/lisi/770] in DispatcherServlet with name 'springMVC'
使用元素,把mapping的URI注冊到SimpleUrlHandlerMapping的urlMap中,
key為mapping的URI pattern值,而value為ResourceHttpRequestHandler,
這樣就巧妙的把對靜態資源的訪問由HandlerMapping轉到ResourceHttpRequestHandler處理并返回,所以就支持classpath目錄,jar包內靜態資源的訪問.
另外需要注意的一點是,不要對SimpleUrlHandlerMapping設置defaultHandler.因為對static uri的defaultHandler就是ResourceHttpRequestHandler,
否則無法處理static resources request.
方案三 ,使用
會把"/**" url,注冊到SimpleUrlHandlerMapping的urlMap中,把對靜態資源的訪問由HandlerMapping轉到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler處理并返回.
DefaultServletHttpRequestHandler使用就是各個Servlet容器自己的默認Servlet.
補充說明:多個HandlerMapping的執行順序問題:
DefaultAnnotationHandlerMapping的order屬性值是:0
自動注冊的?SimpleUrlHandlerMapping的order屬性值是:?2147483646
自動注冊?的SimpleUrlHandlerMapping?的order屬性值是:?2147483647
spring會先執行order值比較小的。當訪問一個a.jpg圖片文件時,先通過 DefaultAnnotationHandlerMapping 來找處理器,一定是找不到的,因為我們沒有叫a.jpg的Action。然后再按order值升序找,由于最后一個 SimpleUrlHandlerMapping 是匹配 "/**"的,所以一定會匹配上,就可以響應圖片。
如何你的DispatcherServlet攔截 *.do,.action這樣的URL后綴,就不存在這樣的問題。
一般看情況而選擇。
總結
以上是生活随笔為你收集整理的静态资源java 配置文件_java web 静态资源访问配置三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java treeset 红黑树_【数据
- 下一篇: java 在线电影_java电影在线影评