国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用Stripes做Java Web開發(fā)2
用約定、不用配置文件

    我們現(xiàn)在有了Java組件,我們該做配置了,把動作映射的一個URL上,并將其連接到我們的兩個view上面去。等一下!我們在用Stripes,我們不需要外部配置文件!

    雖然這聽來好像好得不像是真的,但這的確是Stripes的一項最具生產(chǎn)效率的功能。Stripes使用約定而非配置文件來映射動作到URL上。我們也無須使用一個外部配置文件來把view映射到一個個標記名字上。這意味著程序員不用再為了一個標記名字——比方說SUCCESS——的實際來源,而在配置文件中跳來跳去了。沒有必要在Java和view組件的外部進行配線,因而導(dǎo)致更好地維護性和更高的生產(chǎn)率。

    Stripes是如何提供隱式的URL映射而無需在外部配置每一個動作或者而外的annotation呢?這個可以從Stripes在web.xml中的配置以及它是如何通過實用默認法建立URL映射來解釋。首先,我們來看看Servlet過濾器:StripesFilter。其在web.xml中的默認配置如下:

 

<filter>
  <display-name>Stripes Filter</display-name>
  <filter-name>StripesFilter</filter-name>
  <filter-class>
    net.sourceforge.stripes.controller.StripesFilter
  </filter-class>
    <init-param>
    <param-name>ActionResolver.UrlFilters</param-name>
    <param-value>/WEB-INF/classes</param-value>
  </init-param>
</filter>



    當(dāng)Servlet容器啟動的時候,StripesFilter對其init-param元素執(zhí)行初始化。其中最重要的init-param元素就是ActionResolver.UrlFilters參數(shù)。這個參數(shù)告訴Stripes到哪里查找跟Stripes有關(guān)的類。這個例子里面,Stripes將查找/WEB-INF/classes目錄下的所有實現(xiàn)ActionBean接口的類。每一個被找到的類和其綁定的URL都將被加入一個Map中。

    讓我們來看看Stripes是如何處理我們的HelloWorldAction動作為例子吧。因為HelloWorldAction類位于/WEB-INF/classes目錄下,所以會被認為是一個Stripes servlet。在我們的例子當(dāng)中,其完整類名是com.myco.web.stripes.action.example.HelloWorldAction。隨后,其完整類名將按照如下法則被翻譯成一個URL綁定。

1.        將含有www、web、stripes、和action的部分及其以前的內(nèi)容刪掉。在我們的例子有三個上述單詞,所以我們得到了example.HelloWorldAction。
2.        如果類名中包涵帶Action或Bean的尾巴,刪掉。因為我們的類名以Action結(jié)尾,我們得到了example.HelloWorld。
3.        將.替換為/,我們得到了example/HelloWorld。
4.        最后,添加上一個尾綴(默認是.action)從而完成了URL綁定。最后的結(jié)果是example/HelloWorld.action。

    現(xiàn)在Stripes找到了ActionBean類并為其創(chuàng)建了一個URL綁定,然后存放在一個java.util.Map<String, Class<? extends ActionBean>>之中。其中key參數(shù)是URL綁定,value參數(shù)是實現(xiàn)ActionBean的類名。下面是我們的例子中的Map:

URL綁定:/example/HelloWorld.action
ActionBean類:com.myco.web.stripes.action.example.HelloWorldAction

    我們要看的第二個組件是Stripes如何把URL綁定翻譯成你正在做的這個ActionBean類。這是Stripes調(diào)度servlet的職責(zé),在web.xml中的配置如下:

<servlet>
     <servlet-name>StripesDispatcher</servlet-name>
     <servlet-class>
        net.sourceforge.stripes.controller.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>StripesDispatcher</servlet-name>
  <url-pattern>*.action</url-pattern>
</servlet-mapping>



    StripesDispatcher的一個職責(zé)就是將URL解析為Stripes的ActionBean類。當(dāng)用戶激活URL http://host/uri/example/HelloWorld.action的時候,Stripes調(diào)度servlet將在URL映射表中查詢并找到com.myco.web.stripes.action.example.HelloWorldAction類,并實例化產(chǎn)生該類的一個實例。最后,index方法被激活,因為在annotation中它被定義為默認局柄而在該URL中并沒有指定一個事件。

    如果我們想要直接執(zhí)行HelloWorldAction中的hello方法怎么辦?應(yīng)該象下面這個URL這樣把事件的名字放在request的參數(shù)中:

http://host/uri/example/HelloWorld.action?hello=&firstName=Mark&age=13

    請注意我們沒有給hello這個request參數(shù)名指定任何值。在這個情況下,StripesDispatcher會把hello這個這個request參數(shù)名和HelloWorldAction類中個一個帶有public Resolution hello()簽名的函數(shù)識別并映射。該方法名城在初始化的時候為了性能而緩存在另一個Map中。

    我們已經(jīng)看到Stripes的基礎(chǔ)以及如果創(chuàng)建簡單的動作和一些該框架是如何運作的細節(jié)。通過在web.xml中的初始化,我們能夠避免用多個單獨的XML配置文件來把我們的顯示層組建寫在一起。這很重要,原因如下:首先,如果你需要任何改動,你可以看到一個URL就立即知道你該查看哪一個類。其次,我們不需要任何單獨的工具來在你的配置文件過大而且不可管理的時候幫助你。通過消除掉配置文件,我們不再需要給框架一大堆的metadata。最后,我們不再需要為一個獨立的用來描述我們的組件是如果相互關(guān)聯(lián)的文件來一刻不停維護了。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
2 Struts Hello World Example in Eclipse
Stripes框架
Spring3 MVC 深入研究
web.xml配置文件中的servlet和servlet
web.xml配置文件詳解
J2EE學(xué)習(xí)之Spring(2) 配置DispatcherServlet - 我的文章 -...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服