詳解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è)中都有很大的使用比例
方式二:/ 不會攔截 .jsp,但是會攔截.html等靜態(tài)資源(靜態(tài)資源:除了servlet和jsp之外的js、css、png等)
為什么配置為/ 會攔截靜態(tài)資源???
因為tomcat容器中有一個web.xml(父),你的項目中也有一個web.xml(子),是一個繼承關(guān)系
父web.xml中有一個DefaultServlet, url-pattern 是一個 /
此時我們自己的web.xml中也配置了一個 / ,覆寫了父web.xml的配置
為什么不攔截.jsp呢?
因為父web.xml中有一個JspServlet,這個servlet攔截.jsp文件,而我們并沒有覆寫這個配置,
所以springmvc此時不攔截jsp,jsp的處理交給了tomcat
如何解決/攔截靜態(tài)資源這件事?
方式三:/* 攔截所有,包括.jsp
-->
<!--攔截匹配規(guī)則的url請求,進(jìn)入springmvc框架處理-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
父xml的路徑:

我們配置的springmvc.xml只能對jsp進(jìn)行攔截,但不能對html等進(jìn)行攔截,我們在webapp下新建個test.html

然后訪問:


原因是沒有對html等靜態(tài)資源后綴進(jìn)行處理的handle.
我們在springmvc.xml里面配置:
<mvc:default-servlet-handler/>

訪問:

繼續(xù)測試:
如果我們將html頁面放在webapp以外的其他位置,都是無法訪問的:

那如果我們想讓靜態(tài)資源在resources下面訪問,我們應(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路徑。
訪問:
http://localhost:8080/resources/test.html

到此這篇關(guān)于詳解SpringMVC的url-pattern配置及原理剖析的文章就介紹到這了,更多相關(guān)SpringMVC的url-pattern配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring中的@Scheduled定時任務(wù)注解詳解
這篇文章主要介紹了Spring中的@Scheduled定時任務(wù)注解詳解,要使用@Scheduled注解,首先需要在啟動類添加@EnableScheduling,啟用Spring的計劃任務(wù)執(zhí)行功能,這樣可以在容器中的任何Spring管理的bean上檢測@Scheduled注解,執(zhí)行計劃任務(wù),需要的朋友可以參考下2023-09-09
eclipse自動創(chuàng)建SpringBoot項目報錯的解決
這篇文章主要介紹了eclipse自動創(chuàng)建SpringBoot項目報錯的解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Java Spring開發(fā)環(huán)境搭建及簡單入門示例教程
這篇文章主要介紹了Java Spring開發(fā)環(huán)境搭建及簡單入門示例,結(jié)合實例形式分析了spring環(huán)境搭建、配置、使用方法及相關(guān)注意事項,需要的朋友可以參考下2017-11-11
讀取Java文件到byte數(shù)組的三種方法(總結(jié))
下面小編就為大家?guī)硪黄x取Java文件到byte數(shù)組的三種方法(總結(jié))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08

