SpringMVC訪問靜態頁面

1.激活服務器的默認servlet處理靜態資源

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

上面的配置含義表示html頁面由服務器的缺省Servlet進行處理,同時注意上面的配置項要寫在DispatcherServlet前面。html

若是你的DispatcherServlet攔截"/",攔截了全部的請求,那麼同時對.js,.jpg等靜態文件的訪問也就被攔截了,從controller返回的html頁面也被攔截了,所以瀏覽器得不到頁面。web

2.mvc:resources

<mvc:resources location="/static/**" mapping="/static/" />

/static/**爲映射路徑,location指定靜態資源的位置.使用<mvc:resources/>元素,把映射路徑註冊到SimpleUrlHandlerMapping的urlMap中,key爲註冊的映射路徑,而value爲ResourceHttpRequestHandler,這樣就巧妙的把對靜態資源的訪問由HandlerMapping轉到ResourceHttpRequestHandler處理並返回spring

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

在springMVC-servlet.xml中配置<mvc:default-servlet-handler />後,會在Spring MVC上下文中定義一個org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它會像一個檢查員,對進入DispatcherServlet的URL進行篩查,若是發現是靜態資源的請求,就將該請求轉由Web應用服務器默認的Servlet處理,若是不是靜態資源的請求,才由DispatcherServlet繼續處理。瀏覽器

<mvc:default-servlet-handler>和<mvc:resource>的區別:<mvc:default-servlet-handler>是將靜態資源的處理轉給服務器默認的servlet進行處理,<mvc:resource>是由spring本身處理靜態資源,這樣spring能夠添加一些額外的功能,如緩存等。緩存

相關文章
相關標籤/搜索