<servlet>
<servlet-name>springmvc</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>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--
方式一:帶后綴,比如*.action *.do *.aaa
該種方式比較精確、方便烫扼,在以前和現(xiàn)在企業(yè)中都有很大的使用比例
方式二:/ 不會(huì)攔截 .jsp锁摔,但是會(huì)攔截.html等靜態(tài)資源(靜態(tài)資源:除了servlet和jsp之外的js恢暖、css浩峡、png等)
為什么配置為/ 會(huì)攔截靜態(tài)資源锥债?叉谜?旗吁?
因?yàn)閠omcat容器中有一個(gè)web.xml(父),你的項(xiàng)目中也有一個(gè)web.xml(子)停局,是一個(gè)繼承關(guān)系
父web.xml中有一個(gè)DefaultServlet, url-pattern 是一個(gè) /
此時(shí)我們自己的web.xml中也配置了一個(gè) / ,覆寫(xiě)了父web.xml的配置
為什么不攔截.jsp呢很钓?
因?yàn)楦竪eb.xml中有一個(gè)JspServlet,這個(gè)servlet攔截.jsp文件董栽,而我們并沒(méi)有覆寫(xiě)這個(gè)配置码倦,
所以springmvc此時(shí)不攔截jsp,jsp的處理交給了tomcat
如何解決/攔截靜態(tài)資源這件事锭碳?
方式三:/* 攔截所有袁稽,包括.jsp
-->
<!--攔截匹配規(guī)則的url請(qǐng)求,進(jìn)入springmvc框架處理-->
<url-pattern>/</url-pattern>
</servlet-mapping>
- springMVC.xml文件中配置default-servlet-handler標(biāo)簽
<!--靜態(tài)資源配置擒抛,方案一-->
<!--
原理:添加該標(biāo)簽配置之后推汽,會(huì)在SpringMVC上下文中定義一個(gè)DefaultServletHttpRequestHandler對(duì)象
這個(gè)對(duì)象如同一個(gè)檢查人員,對(duì)進(jìn)入DispatcherServlet的url請(qǐng)求進(jìn)行過(guò)濾篩查歧沪,如果發(fā)現(xiàn)是一個(gè)靜態(tài)資源請(qǐng)求
那么會(huì)把請(qǐng)求轉(zhuǎn)由web應(yīng)用服務(wù)器(tomcat)默認(rèn)的DefaultServlet來(lái)處理歹撒,如果不是靜態(tài)資源請(qǐng)求,那么繼續(xù)由
SpringMVC框架處理
-->
<mvc:default-servlet-handler/>
- springMVC框架自己處理靜態(tài)資源配置
<!--靜態(tài)資源配置槽畔,方案二栈妆,SpringMVC框架自己處理靜態(tài)資源
mapping:約定的靜態(tài)資源的url規(guī)則
location:指定的靜態(tài)資源的存放位置
-->
<mvc:resources location="classpath:/" mapping="/resources/**"/>
<mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>