詳解spring mvc中url-pattern的寫法
1.設(shè)置url-pattern為*.do(最為常見的方式)
只要你的請求url中包含配置的url-pattern,該url就可以到達(dá)DispatcherServlet。當(dāng)然這里業(yè)內(nèi)通常都將url-pattern配置為*.do的方式,所以你最好也這么去做。
2.設(shè)置url-pattern為/*(這種方式是很不好)
如果將url-pattern設(shè)置為/*之后,web項(xiàng)目中的jsp都不能訪問了會報出404的錯誤,這是因?yàn)镈ispatcherServlet會將向JSP頁面的跳轉(zhuǎn)請求也當(dāng)作是一個普通的 Controller 請求,會對其進(jìn)行處理,而此時是找不到與其相應(yīng)的controller。
3.設(shè)置url-pattern為/(用的越來越多)
如果將url-pattern設(shè)置為/之后,只要是在web.xml文件中找不到匹配的URL,它們的訪問請求都將交給DispatcherServlet處理,靜態(tài)資源:css文件,js文件,圖片也會被攔截并交給DispatcherServlet處理。該配置方式不會攔截.jsp文件和.jspx文件,因?yàn)檫@個在tomcat中的conf目錄里面的web.xml文件中已經(jīng)添加的相應(yīng)的處理方式了,他會交給org.apache.jasper.servlet.JspServlet來處理。即我們可以正常訪問系統(tǒng)中的jsp文件。
解決靜態(tài)資源不能訪問的問題,解決方式有三種:
- 使用defaultServlet
我們可以通過使用這個DefaultServlet來處理靜態(tài)資源,在你的系統(tǒng)中的web.xml文件中添加下面配置,要添加在DispatcherServlet的前面,這樣系統(tǒng)就會將帶有下面后綴名的請求交給defaultservlet來處理:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
- 使用mvc:default-servlet-handler
<!--在springmvc.xml文件中添加下面配置即可,該方式會對所有的請求進(jìn)行處理,然后交由相應(yīng)的servlet,這種方式其實(shí)最終也是由DefaultServlet來處理:--> <mvc:default-servlet-handler/>
- 使用mvc:resources
在spring mvc中提供了mvc:resources標(biāo)簽用來解決靜態(tài)資源無法訪問的問題,只需要在springmvc.xml的配置文件中添加下面內(nèi)容即可,這樣會交給spring mvc的ResourceHttpRequestHandler類來處理:
<mvc:resources mapping="/images/**" location="/images/" /> <mvc:resources mapping="/css/**" location="/css/" /> <mvc:resources mapping="/js/**" location="/js/" />
其中:
mapping 表示對該資源的請求。注意,后面是兩個星號**。
location 表示靜態(tài)資源所在目錄,在我的項(xiàng)目中就在webapp下創(chuàng)建一個images文件夾,將所有的圖片放到這個文件夾下。
到此這篇關(guān)于spring mvc中url-pattern的寫法的文章就介紹到這了,更多相關(guān)spring mvc中url-pattern內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 發(fā)送http請求(get、post)的示例
這篇文章主要介紹了Java 發(fā)送http請求的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-10-10
Springboot使用zxing實(shí)現(xiàn)二維碼生成和解析
ZXing支持各種條形碼,二維碼掃描,由多個模塊組成,?而且支持PC端,移動端,本文將利用zxing實(shí)現(xiàn)二維碼生成和解析,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
java高并發(fā)鎖的3種實(shí)現(xiàn)示例代碼
本篇文章主要介紹了java高并發(fā)鎖的3種實(shí)現(xiàn)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

