詳解SpringMVC的url-pattern配置及原理剖析
xml里面配置標(biāo)簽:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <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è) / ,覆寫了父web.xml的配置 為什么不攔截.jsp呢? 因?yàn)楦竪eb.xml中有一個(gè)JspServlet,這個(gè)servlet攔截.jsp文件,而我們并沒(méi)有覆寫這個(gè)配置, 所以springmvc此時(shí)不攔截jsp,jsp的處理交給了tomcat 如何解決/攔截靜態(tài)資源這件事? 方式三:/* 攔截所有,包括.jsp --> <!--攔截匹配規(guī)則的url請(qǐng)求,進(jìn)入springmvc框架處理--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
父xml的路徑:
我們配置的springmvc.xml只能對(duì)jsp進(jìn)行攔截,但不能對(duì)html等進(jìn)行攔截,我們?cè)趙ebapp下新建個(gè)test.html
然后訪問(wèn):
原因是沒(méi)有對(duì)html等靜態(tài)資源后綴進(jìn)行處理的handle.
我們?cè)趕pringmvc.xml里面配置:
<mvc:default-servlet-handler/>
訪問(wèn):
繼續(xù)測(cè)試:
如果我們將html頁(yè)面放在webapp以外的其他位置,都是無(wú)法訪問(wèn)的:
那如果我們想讓靜態(tài)資源在resources下面訪問(wèn),我們應(yīng)該怎么配置呢?
靜態(tài)資源配置方案二
將test.html放在resources目錄下面,然后配置springmvc.xml:
<!--靜態(tài)資源配置,方案二,SpringMVC框架自己處理靜態(tài)資源 mapping:約定的靜態(tài)資源的url規(guī)則 location:指定的靜態(tài)資源的存放位置 --> <mvc:resources location="classpath:/" mapping="/resources/**"/>
resources目錄就是咱們的classpath路徑。
訪問(wèn):
http://localhost:8080/resources/test.html
到此這篇關(guān)于詳解SpringMVC的url-pattern配置及原理剖析的文章就介紹到這了,更多相關(guān)SpringMVC的url-pattern配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 動(dòng)態(tài)代理的方法總結(jié)
這篇文章主要介紹了java 動(dòng)態(tài)代理的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-04-04Spring中的@Scheduled定時(shí)任務(wù)注解詳解
這篇文章主要介紹了Spring中的@Scheduled定時(shí)任務(wù)注解詳解,要使用@Scheduled注解,首先需要在啟動(dòng)類添加@EnableScheduling,啟用Spring的計(jì)劃任務(wù)執(zhí)行功能,這樣可以在容器中的任何Spring管理的bean上檢測(cè)@Scheduled注解,執(zhí)行計(jì)劃任務(wù),需要的朋友可以參考下2023-09-09MyBatis中多對(duì)多關(guān)系的映射和查詢
本文主要介紹了MyBatis中多對(duì)多關(guān)系的映射和查詢的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決
這篇文章主要介紹了eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Java Spring開發(fā)環(huán)境搭建及簡(jiǎn)單入門示例教程
這篇文章主要介紹了Java Spring開發(fā)環(huán)境搭建及簡(jiǎn)單入門示例,結(jié)合實(shí)例形式分析了spring環(huán)境搭建、配置、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-11-11springboot pojo對(duì)象日期屬性的問(wèn)題
這篇文章主要介紹了springboot pojo對(duì)象日期屬性的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10讀取Java文件到byte數(shù)組的三種方法(總結(jié))
下面小編就為大家?guī)?lái)一篇讀取Java文件到byte數(shù)組的三種方法(總結(jié))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08