SpringMVC下關於靜態資源訪問

SpringMVC靜態資源訪問

聊一聊關於靜態資源的訪問問題web

首先,咱們要對web.xml裏面的DispatcherServlet進行設置spring

<!--    中央調度器-->
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <!--tomcat 一啓動就能夠加載中央調度器,數字只要大於0 便可-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <!--
		url-pattern設置爲:"/",當你使用了"/",他會替代Tomcat中的default,
		致使全部的資源都給DispatcherServlet處理,默認狀況下DispatcherServlet
		沒有處理靜態資源的能力,沒有控制器對象能處理靜態資源的訪問,因此致使靜態資源
		訪問失敗都是404,動態代理能夠正常訪問。若是不設置url-pattern設置爲:"/",
		則不存在靜態資源訪問不到
	-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

因爲設置了url-pattern爲:"/",接下來咱們還須要設置springmvc的配置文件,讓靜態資源能夠被訪問到。有兩種方式tomcat

  1. 第一種方式
<!--添加該標籤-->
<mvc:default-servlet-handler />
<!--
原理:
	給程序內存中增長一個處理器對象:DefaultServletHttpRquestHandler。
	讓這個對象能夠把接收到的請求轉發給Tomcat的default這個servlet。
	可是這個標籤與@RequestMapping這個註解有衝突,因此須要加入註解驅動:<mvc:annotation-driven /> 
-->
<mvc:annotation-driven />
  1. 第二種方式
<!--
	使用框架中的:<mvc:resource mapping="" location=""/>標籤,
	標籤加入後框架會本身建立ResourceHttpRequestHandler這個處理器對象。
	讓這個對象處理靜態資源的訪問,不依賴於Tomcat服務器。該標籤與@RequestMapping
	註解有衝突,須要加註解驅動:<mvc:annotation-driven /> 
	參數:
		location:靜態資源在你的項目中的位置 
		mapping:訪問靜態資源的URI地址,使用通配符 ** ,表明多級任意
	參數內的靜態資源皆能夠被訪問
-->
<mvc:resources location="/img/" mapping="/img/**"/>

好啦,這就是目前做爲一個算不上菜鳥的菜鳥對springmvc靜態資源訪問的掌握程度。歡迎留言服務器

相關文章
相關標籤/搜索