国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - JAVA教程 - spring mvc路徑匹配原則詳解

spring mvc路徑匹配原則詳解

2021-04-04 14:35rj042 JAVA教程

這篇文章主要介紹了spring mvc路徑匹配原則詳解,小編覺得還是挺不錯的,這里分享給大家,需要的朋友可以參考下,下面就和小編一起來看看吧

在Spring MVC中經(jīng)常要用到攔截器,在配置需要要攔截的路徑時經(jīng)常用到<mvc:mapping/>子標(biāo)簽,其有一個path屬性,它就是用來指定需要攔截的路徑的。例如:

?
1
2
3
4
5
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.i360r.platform.webapp.runtime.view.interceptor.GenericInterceptor" />
</mvc:interceptor>
</mvc:interceptor>

根據(jù)以上配置,此攔截器會攔截所有的請求。

Spring MVC中的路徑匹配要比標(biāo)準的web.xml要靈活的多。默認的策略實現(xiàn)了 org.springframework.util.AntPathMatcher,就像名字提示的那樣,路徑模式是使用了Apache Ant的樣式路徑,Apache Ant樣式的路徑有三種通配符匹配方法(在下面的表格中列出),這些可以組合出很多種靈活的路徑模式

Table Ant Wildcard Characters


Wildcard
Description
? 匹配任何單字符
* 匹配0或者任意數(shù)量的字符
** 匹配0或者更多的目錄

Table Example Ant-Style Path Patterns

Path Description
/app/*.x 匹配(Matches)所有在app路徑下的.x文件
/app/p?ttern 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example 匹配(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file. 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java
/**/*.jsp 匹配(Matches)任何的.jsp 文件

 HandlerMapping

一 個WEB應(yīng)用程序基本上都要依賴于URL與請求處理器之間的映射,Spring MVC也是一樣,但Spring MVC就像Spring所作的一切一樣(譯者:靈活,可以配置各種東西,但是也造成了很多復(fù)雜性),肯定不會只有一種方法來映射URL和 Controller之間的關(guān)系,并且在實際上,允許你自己創(chuàng)建映射規(guī)則和實現(xiàn),而不僅僅依賴URL映射。
Spring提供了URL的映射處理, 并且處理路徑模式的順序和方法并沒有限定到任何的接口上。Spring MVC的默認實現(xiàn)org.springframework.web.servlet.handler. AbstractUrlHandlerMapping, 會以最長符合路徑模式來匹配一個路徑。
例如:給定一個請求是 /app/dir/file.jsp 并且現(xiàn)在存在兩個路徑匹配模式/**/*.jsp 和/app/dir/*.jsp, 那么,URL會匹配那個模式呢?最后的那個模式/app/dir/*.jsp,會因為最長(has more characters)的原則被匹配,它比/**/*.jsp擁有更多的字符.注意的是,這個原則并沒有在任何高級別的接口中指定,但卻是一種實現(xiàn)細節(jié)。

下面看一下默認的兩個HandlerMapping

 

BeanNameUrlHandlerMapping

默認的映射策略實現(xiàn)是org.springframework.web. servlet.handler.BeanNameUrlHandlerMapping類. 這個類要求任何有可能處理請求的Bean都要起一個以反斜杠(/)字符開頭的名稱或者別名,這個名稱或者別名可以是符合URL Path匹配原則中的任何名字。

Listing A Controller Mapped by a Bean Name

xml 代碼

?
1
2
3
<bean name="/home" class="com.apress.expertspringmvc.flight.web.HomeController">
<property name="flightService" ref="flightService" />
</bean>

■注意:你不能使用id這個屬性來指定任何的URL路徑,因為在XML規(guī)格定中禁止(/)字符來指定XML的id,不過你可以在一個Bean定義中同時擁有id和name屬性

BeanNameUrlHandlerMapping 的缺點

 

它非常便于使用的同時,也擁有一些缺點。它不能影射一個Prototype的Bean.換句話說,當(dāng)使用 BeanNameUrlHandlerMapping時, 所有的請求處理類只能是單例的(singletons) . 一般來說,Controllers 都是按照單例建立的,所以這個并不是一個很嚴重的問題.還有,我會在后面的章節(jié)中介紹Controller,只會有很少類型的Controller需要是 prototypes.

■注釋: Prototype bean 是一種非單例(non-singleton)的bean. 任何一次調(diào)用ApplicationContext的getBean()方法時都會返回一個新的Bean實例.

BeanNameUrlHandlerMapping的另外一個問題存在于在你的應(yīng)用程序中 應(yīng)用攔截(interceptor). 因為請求的映射(handler mapping )和Bean(beans imapping)的映射給綁定在一起了,沒有分開,這樣就不可能在Controller和攔截之間創(chuàng)建復(fù)雜的關(guān)系。如果有復(fù)雜的請求映射需求,你可以用 SimpleUrlHandlerMapping 來代替BeanNameUrlHandlerMapping. SimpleUrlHandlerMapping作為BeanNameUrlHandlerMapping的另外一種選擇, SimpleUrlHandlerMapping直指BeanNameUrlHandlerMapping的兩大軟肋.它可以映射 prototype類型的請求處理器,并且它允許你為處理器(handlers)和攔截器(interceptors)之間創(chuàng)建復(fù)雜靈活的映射路徑的映射算法與BeanNameUrlHandlerMapping是 使用相同的基礎(chǔ)組件,所以這個模式依然是映射URL到請求處理器的(request handler) ,你簡單的在ApplicationContext中聲明一下,就可以使用SimpleUrlHandlerMapping了. DispatcherServlet會根據(jù)類型找到的,并且不會創(chuàng)建默認的映射器了(BeanNameUrlHandlerMapping).意思就是, 如果你想兩個都用,那么就要全部聲明一下在ApplicationContext里.

■提示 DispatcherServlet會鏈式處理請求的(譯者:依次處理請求,可以參照過濾器和GOF中的責(zé)任鏈模式),這樣允許按照你的要求處理映射,映射處理器(Handler mappings )實現(xiàn)了Orderedr接口.

總結(jié)

以上就是本文關(guān)于spring mvc路徑匹配原則詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/rj042/article/details/23278337

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一区二区三区国产在线观看 | 国产精品一二区 | 毛片综合 | 免费大片黄在线观看 | 日韩中文字幕在线播放 | 亚洲精品国产a | 毛片哪里看| 狠狠视频 | 成人a级片在线观看 | 91精品视频一区 | 91精品国产手机 | 久草精品在线 | 国产精品久久久久久久久久久久| 国产精品国产三级国产aⅴ 亚洲精品免费在线观看 | 热久久国产 | 国产美女一区 | 久久性网站 | 成人久久久 | 国产日韩一区二区三区 | 久久久国产一区二区 | 99精品欧美一区二区三区综合在线 | 精品亚洲第一 | 久久99精品久久久久久久青青日本 | 国产日韩精品一区二区 | 超碰91在线 | 久久久久久国产一级毛片高清版 | 黄色小视频在线免费观看 | 91久久精品 | 免费在线观看黄色网址 | 国产精品亚洲一区 | 亚洲高清一区二区三区 | 亚洲va欧美va人人爽成人影院 | 伦一区二区三区中文字幕v亚洲 | 精品人成 | 中文字幕亚洲视频 | 91精品区 | 久久国内精品 | 国产欧美日韩在线观看 | 亚洲免费观看 | 欧洲精品视频在线观看 | 久久人人爽人人爽人人片亚洲 |