<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Ant path 匹配原則

    路徑匹配原則(Path Matching) Spring MVC中的路徑匹配要比標準的web.xml要靈活的多。默認的策略實現了 org.springframework.util.AntPathMatcher,就像名字提示的那樣,路徑模式是使用了Apache Ant的樣式路徑,Apache Ant樣式的路徑有三種通配符匹配方法(在下面的表格中列出)
    這些可以組合出很多種靈活的路徑模式
    Table Ant Wildcard Characters
    Wildcard Description  
    ? 匹配任何單字符  
    * 匹配0或者任意數量的字符  
    ** 匹配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應用程序基本上都要依賴于URL與請求處理器之間的映射,Spring MVC也是一樣,但Spring MVC就像Spring所作的一切一樣(譯者:靈活,可以配置各種東西,但是也造成了很多復雜性),肯定不會只有一種方法來映射URL和 Controller之間的關系,并且在實際上,允許你自己創建映射規則和實現,而不僅僅依賴URL映射。
    Spring提供了URL的映射處理, 并且處理路徑模式的順序和方法并沒有限定到任何的接口上。Spring MVC的默認實現org.springframework.web.servlet.handler. AbstractUrlHandlerMapping, 會以最長符合路徑模式來匹配一個路徑。
    例如:給定一個請求是 /app/dir/file.jsp 并且現在存在兩個路徑匹配模式/**/*.jsp 和/app/dir/*.jsp, 那么,URL會匹配那個模式呢?最后的那個模式/app/dir/*.jsp,會因為最長(has more characters)的原則被匹配,它比/**/*.jsp擁有更多的字符.注意的是,這個原則并沒有在任何高級別的接口中指定,但卻是一種實現細節。
    !!下面看一下默認的兩個HandlerMapping
    BeanNameUrlHandlerMapping
    默 認的映射策略實現是org.springframework.web. servlet.handler.BeanNameUrlHandlerMapping類. 這個類要求任何有可能處理請求的Bean都要起一個以反斜杠(/)字符開頭的名稱或者別名,這個名稱或者別名可以是符合URL Path匹配原則中的任何名字。

    Listing A Controller Mapped by a Bean Name

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


    ■注意:你不能使用id這個屬性來指定任何的URL路徑,因為在XML規格定中禁止(/)字符來指定XML的id,不過你可以在一個Bean定義中同時擁有id和name屬性
    BeanNameUrlHandlerMapping 的缺點
    它 非常便于使用的同時,也擁有一些缺點。它不能影射一個Prototype的Bean.換句話說,當使用 BeanNameUrlHandlerMapping時, 所有的請求處理類只能是單例的(singletons) . 一般來說,Controllers 都是按照單例建立的,所以這個并不是一個很嚴重的問題.還有,我會在后面的章節中介紹Controller,只會有很少類型的Controller需要是 prototypes.


    ■注釋: Prototype bean 是一種非單例(non-singleton)的bean. 任何一次調用ApplicationContext的getBean()方法時都會返回一個新的Bean實例更多的信息請參照<<Pro Spring>>.


    BeanNameUrlHandlerMapping的另外一個問題存在于在你的應用程序中 應用攔截(interceptor). 因為請求的映射(handler mapping )和Bean(beans imapping)的映射給綁定在一起了,沒有分開,這樣就不可能在Controller和攔截之間創建復雜的關系。如果有復雜的請求映射需求,你可以用 SimpleUrlHandlerMapping 來代替BeanNameUrlHandlerMapping. SimpleUrlHandlerMapping作為BeanNameUrlHandlerMapping的另外一種選擇, SimpleUrlHandlerMapping直指BeanNameUrlHandlerMapping的兩大軟肋.它可以映射 prototype類型的請求處理器,并且它允許你為處理器(handlers)和攔截器(interceptors)之間創建復雜靈活的映射
    路 徑的映射算法與BeanNameUrlHandlerMapping是 使用相同的基礎組件,所以這個模式依然是映射URL到請求處理器的(request handler) ,你簡單的在ApplicationContext中聲明一下,就可以使用SimpleUrlHandlerMapping了. DispatcherServlet會根據類型找到的,并且不會創建默認的映射器了(BeanNameUrlHandlerMapping).意思就是, 如果你想兩個都用,那么就要全部聲明一下在ApplicationContext里.
    ■提示 DispatcherServlet會鏈式處理請求的(譯者:依次處理請求,可以參照過濾器和GOF中的責任鏈模式),這樣允許按照你的要求處理映射,映射處理器(Handler mappings )實現了Orderedr接口.



    posted on 2009-09-03 13:11 々上善若水々 閱讀(18290) 評論(2)  編輯  收藏 所屬分類: opensource

    評論

    # re: Ant path 匹配原則[未登錄]  回復  更多評論   

    dfdfdfdfd
    2016-04-22 15:42 | aaa

    # re: Ant path 匹配原則[未登錄]  回復  更多評論   

    我喜歡你惠茹
    2016-04-22 15:43 | aaa
    主站蜘蛛池模板: 青青草国产免费久久久下载| 亚洲精华国产精华精华液| 国产AV无码专区亚洲AV男同| 亚洲一区日韩高清中文字幕亚洲| gogo全球高清大胆亚洲| 四虎亚洲国产成人久久精品| 国产一级高清免费观看| 亚洲国产成人精品91久久久| 亚洲?v女人的天堂在线观看 | 香港经典a毛片免费观看看| 亚洲精品乱码久久久久蜜桃| 国产成人亚洲精品无码AV大片| 香蕉97碰碰视频免费| 国产精品无码免费专区午夜| 中文在线观看永久免费| 久久久久久久久久国产精品免费| 亚洲高清视频免费| 女人让男人免费桶爽30分钟| 久久免费视频观看| 亚洲福利视频一区二区三区| 最近最好最新2019中文字幕免费| 91嫩草亚洲精品| 亚洲三级高清免费| 成人免费毛片观看| 亚洲阿v天堂在线2017免费| 在线亚洲人成电影网站色www| 亚洲av永久无码精品古装片| 亚洲精品韩国美女在线| 亚洲色成人四虎在线观看| 噜噜噜亚洲色成人网站| 99精品视频在线观看免费| 在线观看的免费网站无遮挡| 在线观看无码的免费网站| 中文字幕日韩亚洲| 亚洲AV无码一区二区二三区软件 | 免费无码又爽又刺激高潮视频 | 一级做a爱过程免费视频高清| 中文字幕久精品免费视频| 老司机在线免费视频| 又粗又硬又黄又爽的免费视频 | 免费毛片在线播放|