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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開(kāi)發(fā)
    隨筆 - 39, 文章 - 310, 評(píng)論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    Ant path 匹配原則

    路徑匹配原則(Path Matching) Spring MVC中的路徑匹配要比標(biāo)準(zhǔn)的web.xml要靈活的多。默認(rèn)的策略實(shí)現(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

     

    一 個(gè)WEB應(yīng)用程序基本上都要依賴于URL與請(qǐng)求處理器之間的映射,Spring MVC也是一樣,但Spring MVC就像Spring所作的一切一樣(譯者:靈活,可以配置各種東西,但是也造成了很多復(fù)雜性),肯定不會(huì)只有一種方法來(lái)映射URL和 Controller之間的關(guān)系,并且在實(shí)際上,允許你自己創(chuàng)建映射規(guī)則和實(shí)現(xiàn),而不僅僅依賴URL映射。
    Spring提供了URL的映射處理, 并且處理路徑模式的順序和方法并沒(méi)有限定到任何的接口上。Spring MVC的默認(rèn)實(shí)現(xiàn)org.springframework.web.servlet.handler. AbstractUrlHandlerMapping, 會(huì)以最長(zhǎng)符合路徑模式來(lái)匹配一個(gè)路徑。
    例如:給定一個(gè)請(qǐng)求是 /app/dir/file.jsp 并且現(xiàn)在存在兩個(gè)路徑匹配模式/**/*.jsp 和/app/dir/*.jsp, 那么,URL會(huì)匹配那個(gè)模式呢?最后的那個(gè)模式/app/dir/*.jsp,會(huì)因?yàn)樽铋L(zhǎng)(has more characters)的原則被匹配,它比/**/*.jsp擁有更多的字符.注意的是,這個(gè)原則并沒(méi)有在任何高級(jí)別的接口中指定,但卻是一種實(shí)現(xiàn)細(xì)節(jié)。
    !!下面看一下默認(rèn)的兩個(gè)HandlerMapping
    BeanNameUrlHandlerMapping
    默 認(rèn)的映射策略實(shí)現(xiàn)是org.springframework.web. servlet.handler.BeanNameUrlHandlerMapping類. 這個(gè)類要求任何有可能處理請(qǐng)求的Bean都要起一個(gè)以反斜杠(/)字符開(kāi)頭的名稱或者別名,這個(gè)名稱或者別名可以是符合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這個(gè)屬性來(lái)指定任何的URL路徑,因?yàn)樵赬ML規(guī)格定中禁止(/)字符來(lái)指定XML的id,不過(guò)你可以在一個(gè)Bean定義中同時(shí)擁有id和name屬性
    BeanNameUrlHandlerMapping 的缺點(diǎn)
    它 非常便于使用的同時(shí),也擁有一些缺點(diǎn)。它不能影射一個(gè)Prototype的Bean.換句話說(shuō),當(dāng)使用 BeanNameUrlHandlerMapping時(shí), 所有的請(qǐng)求處理類只能是單例的(singletons) . 一般來(lái)說(shuō),Controllers 都是按照單例建立的,所以這個(gè)并不是一個(gè)很嚴(yán)重的問(wèn)題.還有,我會(huì)在后面的章節(jié)中介紹Controller,只會(huì)有很少類型的Controller需要是 prototypes.


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


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



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

    評(píng)論

    # re: Ant path 匹配原則[未登錄](méi)  回復(fù)  更多評(píng)論   

    dfdfdfdfd
    2016-04-22 15:42 | aaa

    # re: Ant path 匹配原則[未登錄](méi)  回復(fù)  更多評(píng)論   

    我喜歡你惠茹
    2016-04-22 15:43 | aaa
    主站蜘蛛池模板: 亚洲高清一区二区三区电影| 999zyz**站免费毛片| 精品一区二区三区免费毛片爱| 亚洲一区二区三区国产精品| 国产aⅴ无码专区亚洲av| 久久久免费的精品| 一个人免费视频在线观看www| 在线观看亚洲AV日韩A∨| 免费大片黄在线观看| 又大又硬又爽免费视频| 国产成人亚洲毛片| 色播精品免费小视频| 亚洲影视一区二区| 精品免费久久久久国产一区 | 国产v亚洲v天堂a无| 成人无码区免费视频观看| 亚洲日本乱码卡2卡3卡新区| 麻豆国产VA免费精品高清在线| 亚洲一区爱区精品无码| 国产免费无码AV片在线观看不卡| 亚洲国产精品婷婷久久| 猫咪免费人成网站在线观看入口| 亚洲av无码专区在线观看素人| 久久久久久久久久免免费精品| 亚洲an天堂an在线观看| 一二三四在线观看免费中文在线观看| 亚洲一区二区三区在线播放| 免费无码又爽又刺激一高潮| 亚洲毛片无码专区亚洲乱| 国产免费av一区二区三区| 久久久久久久久久久免费精品| 亚洲黄色在线电影| 日韩免费观看一区| 91麻豆精品国产自产在线观看亚洲 | 免费人成黄页在线观看日本| 亚洲理论片在线观看| 免费观看一级毛片| 国产在线精品一区免费香蕉| 亚洲欧洲日韩国产| 亚洲乱码中文字幕综合234 | a级在线观看免费|