Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評(píng)論 - 589, 引用 - 0

          導(dǎo)航

          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          公告

          Flyingis博客空間內(nèi)所有文章除特別聲明為[轉(zhuǎn)載],均為作者的學(xué)習(xí)心得和原創(chuàng)作品。如要轉(zhuǎn)載,請(qǐng)注明作者名flyingis及原文地址

          聯(lián)系方式

          常用鏈接

          留言簿(41)

          我參與的團(tuán)隊(duì)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          新聞檔案

          .Net 技術(shù)

          Ajax Technology

          Eclipse Technology

          ESRI Technology

          GIS Technology

          Java Technology

          Linux Technology

          Open Source

          個(gè)人博客

          精彩博客(技術(shù)類(lèi))

          精彩博客(非技術(shù))

          搜索

          •  

          積分與排名

          • 積分 - 661834
          • 排名 - 72

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          重溫Struts--ActionMapping和ActionForward

          作者:Flyingis

          前段時(shí)間用Struts完成一個(gè)小項(xiàng)目,當(dāng)時(shí)還沒(méi)有來(lái)到blogjava,很多東西也沒(méi)有記錄。現(xiàn)在花一點(diǎn)時(shí)間,將整個(gè)Struts應(yīng)用重新溫習(xí)一遍,重新挖掘項(xiàng)目開(kāi)發(fā)過(guò)程中沒(méi)有注意到的知識(shí)點(diǎn),并寫(xiě)下自己的一些心得與體會(huì)。

          ActionMapping

          ActionMapping將對(duì)Struts應(yīng)用中有效的業(yè)務(wù)邏輯進(jìn)行分類(lèi),當(dāng)一個(gè)請(qǐng)求到達(dá)時(shí),ActionSevletActionMapping目錄中查找對(duì)應(yīng)的信息。ActionMappingStruts應(yīng)用的一個(gè)核心設(shè)計(jì),當(dāng)需要了解一個(gè)Struts應(yīng)用,或編寫(xiě)一個(gè)新的Struts應(yīng)用的時(shí)候,都應(yīng)該從ActionMapping入手。ActionMapping有較多的屬性信息,具體參考相關(guān)文檔。

          ActionForward

          ActionForwardStruts的核心類(lèi)之一,其基類(lèi)僅有4個(gè)屬性:name / path / redirect / classname。在基于StrutsWeb應(yīng)用程序開(kāi)發(fā)過(guò)程中,Action操作完畢后程序會(huì)通過(guò)Struts的配置文件struts-config.xml鏈接到指定的ActionForward,傳到Struts的核心類(lèi)ActionServletActionServlet使用ActionForward提供的路徑,將控制傳遞給下一個(gè)步驟。ActionForward控制接下來(lái)程序的走向。ActionForward代表一個(gè)應(yīng)用的URI,它包括路徑和參數(shù),例如:

          path=“/modify.do?method=edit&id=10”

          ActionForward的參數(shù)除了在struts-config.xml和頁(yè)面中設(shè)置外,還可以通過(guò)在Action類(lèi)中添加參數(shù),或重新在Action中創(chuàng)建一個(gè)ActionForward

          ActionForward中有一個(gè)重要的屬性redirect,當(dāng)redirect=false時(shí),將保存存儲(chǔ)在http請(qǐng)求和請(qǐng)求上下文中的所有內(nèi)容,僅在同一個(gè)應(yīng)用中可用。當(dāng)redirect=true時(shí),Web客戶端進(jìn)行一次新的http請(qǐng)求,請(qǐng)求的資源可以在同一個(gè)應(yīng)用中,也可以不在,原來(lái)的請(qǐng)求參數(shù)不再保存,原來(lái)的請(qǐng)求上下文也被清除,新的http請(qǐng)求僅包含ActionForwardpath屬性里所包含的參數(shù)。如果在同一個(gè)應(yīng)用中,用戶會(huì)話的上下文會(huì)被維護(hù)。

          ActionForward分為全局轉(zhuǎn)發(fā)和局部轉(zhuǎn)發(fā),ActionMapping對(duì)象的findForward方法首先會(huì)檢查局部轉(zhuǎn)發(fā)列表,查找失敗就會(huì)到全局轉(zhuǎn)發(fā)列表中查找。書(shū)寫(xiě)格式中,我們一般將全局變量定義為String常數(shù),避免誤解,使得轉(zhuǎn)發(fā)列表結(jié)構(gòu)清晰易讀。

          在項(xiàng)目開(kāi)發(fā)過(guò)程中經(jīng)常碰到一種情況,當(dāng)頁(yè)面已經(jīng)改變了,瀏覽器中的地址如/modify.do/modify.jsp卻沒(méi)有變化,當(dāng)時(shí)沒(méi)有考慮這么細(xì),雖然存在疑問(wèn),但沒(méi)有影響到程序功能的實(shí)現(xiàn),因此忽略過(guò)去了,今天查找了一些資料才弄清楚。客戶端瀏覽器顯示的是瀏覽器最后被給定的URL,當(dāng)URL被提交后,在某個(gè)組件返回一個(gè)響應(yīng)給瀏覽器之前,Web應(yīng)用可能已經(jīng)轉(zhuǎn)發(fā)請(qǐng)求多次,而這些過(guò)程都發(fā)生在服務(wù)器端,客戶端瀏覽器并不知道有什么變化。當(dāng)一個(gè)http響應(yīng)被返回時(shí),它并沒(méi)有包含地址欄的值,所以瀏覽器僅僅顯示其用來(lái)作為初始請(qǐng)求的地址。通過(guò)使用redirect可以改變?yōu)g覽器地址的顯示,因?yàn)檫@樣可以向?yàn)g覽器提交一個(gè)新的請(qǐng)求,但付出的代價(jià)是數(shù)據(jù)不能通過(guò)請(qǐng)求上下文傳遞到頁(yè)面,這也是使用forwardredirect的差異之一。

          posted on 2006-03-05 10:40 Flyingis 閱讀(1438) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Web 框架與開(kāi)發(fā)

          主站蜘蛛池模板: 东丰县| 陕西省| 达孜县| 晋江市| 湖南省| 河北区| 明光市| 柳河县| 五华县| 芦山县| 周至县| 永和县| 河曲县| 万载县| 芜湖县| 新宾| 什邡市| 洱源县| 蓝山县| 柘荣县| 巴彦县| 天峻县| 辛集市| 和硕县| 安西县| 广饶县| 二手房| 长岭县| 筠连县| 忻州市| 镇平县| 奇台县| 宁武县| 固始县| 乐都县| 女性| 保定市| 南平市| 广德县| 平远县| 丰顺县|