本文實例匯總了javaweb中靜態文件的常用處理方法,在Javaweb程式開發中很有實用價值,具體方法匯總如下:
方法一:激活Tomcat的defaultServlet來處理靜態文件
在web.xml中添加:
<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>
說明:要寫在DispatcherServlet的前面, 讓defaultServlet先攔截請求,這樣請求就不會進入Spring了,我想性能是最好的吧。
Tomcat, Jetty, JBoss, and GlassFish 自帶的預設Servlet的名字-- "default"
Google App Engine 自帶的預設Servlet的名字-- "_ah_default"
Resin 自帶的預設值-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字-- "Servlet的名字。 resin-file"
WebLogic 自帶的默認Servlet的名字-- "FileServlet"
WebSphere 自帶的默認Servlet的名字-- "SimpleFileServlet"
方法二: 在spring3.0.4以後版本提供了mvc:resources , 使用方法:
<!-- 对静态资源文件的访问 --> <mvc:resources mapping="/images/**" location="/images/" />
說明:/images/**對應到ResourceHttpRequestHandler進行處理,location指定靜態資源的位置.可以是web application根目錄下、jarjar,這樣可以把靜態包資源指定靜態資源的位置.可以是web application根目錄下、jar中。 cache-period 可以使得靜態資源進行web cache
方法三,使用
<mvc:default-servlet-handler/>
把把"/mple**" url, 7/mple**" url對靜態資源的存取由HandlerMapping轉到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler處理並傳回。
DefaultServletHttpRequestHandler使用就是各個Servlet容器自己的預設Servlet.
補充說明:多個HandlerMapping的執行順序問題:
DefaultAnnotationHandlerMapping的dlerorderorderorder是:0是: 2147483646
訪問一張圖片,還要走層層配對。不知性能如何?