freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

struts教程-資料下載頁

2025-08-12 12:14本頁面

【導(dǎo)讀】1. Struts教程。豐偉。2. 目錄

  

【正文】 段的錯(cuò) 誤消息, 但是,要指示所有錯(cuò)誤都屬于同一類別,可以對(duì)屬 性參數(shù)指定以下常量: error 包含從屬性文件派生的 “鍵-字符串 ”對(duì)的鍵的 ActionError 對(duì)象。當(dāng)配置 ActionError 對(duì)象時(shí),最多可以包括要代入字符串中用來替代{ 0}、{ 1}等的四個(gè)值。 ? 如果從驗(yàn)證方法返回了錯(cuò)誤,則 ActionServlet 指導(dǎo)對(duì)在 action元素的輸入屬性中指定的對(duì)象或 JSP 進(jìn)行處理;在本例中,將處理 . ? JSP . 包括用于顯示從驗(yàn)證方法派生的任何錯(cuò)誤消息的以下 標(biāo)記: html:errors/ 如果在未發(fā)生輸入錯(cuò)誤的情況下調(diào)用 JSP,則該標(biāo)記不顯示任何內(nèi)容, 而在 JSP 中將繼續(xù)進(jìn)行處理。但是,如果因發(fā)生驗(yàn)證故障而調(diào)用了 JSP, 則為用戶顯示的內(nèi)容將受到屬性文件中是否包括下列鍵的影響: ― ,它導(dǎo)致在所有錯(cuò)誤消息前面顯示一個(gè)字符串;或者 ― ,它導(dǎo)致在所有錯(cuò)誤消息后面顯示一個(gè)字符串;或者 ― ,和 兩者 例如,在 中, 和 的 “鍵-字符串 ”對(duì)以及先前顯示的這兩個(gè)消息鍵為如下所示,它們各自都在單獨(dú)的一行上(但是分成了多行顯示以便于您復(fù)查): = p class=“errors” The Action failed because of the following reason(s): ul class=“errors” =liyou must enter a User ID. = liYour account must start with a positive balance. =/ul/p 如果在注冊(cè)時(shí)用戶對(duì)用戶名輸入了空白,對(duì)余額輸入零,則用戶將接收到一個(gè)包括兩個(gè)錯(cuò)誤的列表的屏幕: 19 The Action failed because of the following reason(s): o You must enter a User ID. o Your account must start with a positive balance. 可以為標(biāo)記 html:errors/指定屬性以支持國際化或者只顯示有關(guān)指定了給定屬性值的錯(cuò)誤的信息。通過使用相異屬性值,可以在相鄰的不同字段中顯示每條錯(cuò)誤消息而不是將所有錯(cuò)誤置于單個(gè)列表中。 使用異常處理聲明 要定義應(yīng)用程序的邏輯流程,成熟的經(jīng)驗(yàn)是推薦在代碼之外,用配置的方法來實(shí)現(xiàn),而不是寫死在程序代碼中的。在 J2EE中,這樣的 例子比比皆是。從實(shí)現(xiàn) EJB的安全性和事務(wù)性行為到描述 JMS消息和目的地之間的關(guān)系,很多運(yùn)行時(shí)的處理流程都是可以在程序之外定義的。 Struts 創(chuàng)建者從一開始就采用這種方法,通過配置 Struts的配置文件來定制應(yīng)用系統(tǒng)運(yùn)行時(shí)的各個(gè)方面。這一點(diǎn)在版本 ,包括新的異常處理功能。在 Struts framework以前的版本中,開發(fā)人員不得不自己處理 Struts應(yīng)用中發(fā)生的錯(cuò)誤情況。在最新的版本中,情況大大的改觀了, Struts Framework提供了內(nèi)置的一個(gè)稱為 ExceptionHandler 的類, 用于系統(tǒng)缺省處理 action類運(yùn)行中產(chǎn)生的錯(cuò)誤。這也是在上一個(gè)技巧中我們提到的framework許多可擴(kuò)展接口之一。 Struts缺省的 ExceptionHandler類會(huì)生成一個(gè) ActionError對(duì)象并保存在適當(dāng)?shù)姆秶?scope)對(duì)象中。這樣就允許 JSP頁面使用錯(cuò)誤類來提醒用戶出現(xiàn)什么問題。如果你認(rèn)為這不能滿足你的需求,那么可以很方便的實(shí)現(xiàn)你自己的 ExcepionHandler類。 具體定制異常處理的方法和機(jī)制 要定制自己的異常處理機(jī)制,第一步是繼承 。這個(gè)類有 2個(gè)方法可以覆蓋,一個(gè)是 excute()另外一個(gè)是 storeException(). 在多數(shù)情況下,只需要覆蓋其中的 excute()方法。下面是 ExceptionHandler類的 excute()方法聲明: 正如你看到的,該方法有好幾個(gè)參數(shù),其中包括原始的異常。方法返回一個(gè)ActionForward對(duì)象,用于異常處理結(jié)束后將 controller類帶到請(qǐng)求必須轉(zhuǎn)發(fā)的地方去。 當(dāng)然您可以實(shí)現(xiàn)任何處理,但一般而言,我 們必須檢查拋出的異常 ,并針對(duì)該類型的異常進(jìn)行特定的處理。缺省的,系統(tǒng)的異常處理功能是創(chuàng)建一個(gè)出錯(cuò)信息,同時(shí)把請(qǐng)求轉(zhuǎn)發(fā)到配置文件中指定的地方去。 定制異常處理的一個(gè)常見的例子是處理嵌套異常。假設(shè)該異常 20 包含有嵌套異常,這些嵌套異常又包含了其他異常,因此我們必須覆蓋原來的 execute()方法,對(duì)每個(gè)異常編寫出錯(cuò)信息。 一旦你創(chuàng)建了自己的 ExceptionHandler 類,就應(yīng)該在 Struts配置文件中的部分聲明這個(gè)類,以便讓 Struts知道改用你自定義的異常處理取代缺省的異常處理 . 可以配置你自 己的 ExceptionHandler 類是用于 Action Mapping特定的部分還是所有的Action對(duì)象。如果是用于 Action Mapping特定的部分就在元素中配置。如果想讓這個(gè)類可用于所有的 Action對(duì)象 ,可以在 元素中指定。例如,假設(shè)我們創(chuàng)建了異常處理類CustomizedExceptionHandler用于所有的 Action類 , 元素定義如下所示: 在元素中可以對(duì)很多屬性進(jìn)行設(shè)置。在本文中,最重要的屬性莫過于 handler屬性 , handler屬性的值就是自定義的繼承了 ExceptionHandler類的子類的全名。 假如該屬性沒有定義,Struts會(huì)采用自己的缺省值。當(dāng)然,其他的屬性也很重要,但如果想覆蓋缺省的異常處理的話, handler無疑是最重要的屬性。 最后必須指出的一點(diǎn)是,你可以有不同的異常處理類來處理不同的異常。在上面的例子中, CustomizedExceptionHandler用來處理任何 . 其實(shí),你也可以定義多個(gè)異常處理類,每一個(gè)專門處理不同的異常樹。下面的 XML片斷解釋了如何配置以實(shí)現(xiàn)這一點(diǎn)。 在 這里,一旦有異常拋出, struts framework將試圖在配置文件中找到 ExceptionHandler, 21 如果沒有找到,那么 struts將沿著該異常的父類鏈一層層往上找直到發(fā)現(xiàn)匹配的為止。因此,我們可以定義一個(gè)層次型的異常處理關(guān)系結(jié)構(gòu),在配置文件中已經(jīng)體現(xiàn)了這一點(diǎn)。 使用應(yīng)用模塊( Application Modules) Struts 。應(yīng)用模塊允許將單個(gè) Struts應(yīng)用劃分成幾個(gè)模塊,每個(gè)模塊有自己的 Struts配置文件, JSP頁面, Action等等。 這個(gè)新特性是 為了解決大中型的開發(fā)隊(duì)伍抱怨最多的一個(gè)問題,即為了更好的支持并行開發(fā)允許多個(gè)配置文件而不是單個(gè)配置文件。 顯然,當(dāng)很多開發(fā)人員一起參加一個(gè)項(xiàng)目時(shí),單個(gè)的 Struts配置文件很容易引起資源沖突。應(yīng)用模塊允許 Struts按照功能要求進(jìn)行劃分,許多情況已經(jīng)證明這樣更貼近實(shí)際。例如,假設(shè)我們要開發(fā)一個(gè)典型的商店應(yīng)用程序??梢詫⒔M成部分劃分成模塊比如 catalog(商品目錄) , customer(顧客) , customer service(顧客服務(wù)) , order(訂單)等。每個(gè)模塊可以分布到不同的目錄下,這樣各 部分的資源很容易定位,有助于開發(fā)和部署。圖 1 顯示了該應(yīng)用的目錄結(jié)構(gòu)。 一個(gè)典型的商店應(yīng)用程序的目錄結(jié)構(gòu) 注:如果你無需將項(xiàng)目劃分成多個(gè)模塊, Struts框架支持一個(gè)缺省的應(yīng)用模塊。這就使得應(yīng)用程序也可以在 ,具有可移植性,因?yàn)閼?yīng)用程序會(huì)自動(dòng)作為缺省的應(yīng)用模塊。 為了使用多應(yīng)用模塊功能,必須執(zhí)行以下幾個(gè)準(zhǔn)備步驟: 為每個(gè)應(yīng)用模塊創(chuàng)建獨(dú)立的 Struts配置文件。 配置 Web 部署描述符 。 使用 來實(shí)現(xiàn)程序在模塊之間的跳轉(zhuǎn) . 創(chuàng)建獨(dú)立的 Struts配置文件 22 每個(gè) Struts應(yīng)用模塊必須擁有自己的配置文件。允許創(chuàng)建自己的獨(dú)立于其他模塊的Action, ActionForm,異常處理甚至更多。 繼續(xù)以上面的商店應(yīng)用程序?yàn)槔?,我們可以?chuàng)建以下的配置文件:一個(gè)文件名為,包含 catalog(商品目錄)、 items(商品清單 )、和其它與庫存相關(guān)的功能的配置信息;另一個(gè)文件名為 struts , 包含對(duì) order(訂單)和 order tracking(訂單跟蹤)的設(shè)置。第三個(gè)配置文件是 ,其中含有屬于缺省的應(yīng)用模塊中的一般性的功能。 在為每個(gè)應(yīng)用模塊創(chuàng)建獨(dú)立的配置文件之后,我們就有可能需要調(diào)用不同的模塊中Action。為此必須使用 Struts框架提供的 SwitchAction類。 Struts 會(huì)自動(dòng)將應(yīng)用模塊的名字添加到 URL,就如 Struts 自動(dòng)添加應(yīng)用程序的名字加到 URL一樣。應(yīng)用模塊是對(duì)框架的一個(gè)新的擴(kuò)充,有助于進(jìn)行并行的團(tuán)隊(duì)開 發(fā)。如果你的團(tuán)隊(duì)很小那就沒必要用到這個(gè)特性,不必進(jìn)行模塊化。當(dāng)然,就算是只有一個(gè)模塊,系統(tǒng)還是一樣的運(yùn)作。 把 JSP 放到 WEBINF 后以保護(hù) JSP 源代碼 為了更好地保護(hù)你的 JSP避免未經(jīng)授權(quán)的訪問和窺視, 一個(gè)好辦法是將頁面文件存放在Web應(yīng)用的 WEBINF目錄下。 通常 JSP開發(fā)人員會(huì)把他們的頁面文件存放在 Web應(yīng)用相應(yīng)的子目錄下。一個(gè)典型的商店應(yīng)用程序的目錄結(jié)構(gòu)如圖 2所示。跟 catalog (商品目錄)相關(guān)的 JSP被保存在 catalog子目錄下。跟 customer相關(guān)的 JSP,跟訂單相關(guān)的 JSP等都按照這種方法存放。 基于不同的功能 JSP 被放置在不同的目錄下 這種方法的問題是這些頁面文件容易被偷看到源代碼,或被直接調(diào)用。某些場合下這可能不是個(gè)大問題,可是在特定情形中卻可能構(gòu)成安全隱患。用戶可以繞過 Struts的 controller直接調(diào)用 JSP同樣也是個(gè)問題。 為了減少風(fēng)險(xiǎn),可以把這些頁面文件移到 WEBINF 目錄下。基于 Servlet的聲明, WEBINF不作為 Web應(yīng)用的公共文檔樹的一部分。因此, WEBINF 目錄下的資源不是為客戶直接服務(wù)的。我們?nèi)匀豢梢允褂?WEBINF目錄下的 JSP頁面來提供視圖給客戶,客戶卻不能直接請(qǐng)求訪問 JSP。 23 采用前面的例子,圖 3顯示將 JSP頁面移到 WEBINF 目錄下后的目錄結(jié)構(gòu) JSP存放在 WEBINF 目錄下更為安全 如果把這些 JSP頁面文件移到 WEBINF 目錄下,在調(diào)用頁面的時(shí)候就必須把WEBINF添加到 URL中。例如,在一個(gè) Struts配置文件中為一個(gè) logoff action寫一個(gè) Action mapping。其中 JSP的路徑必須以 WEBINF開頭。如下所示:請(qǐng)注意粗體部分 . 這個(gè)方法在任何情況下都不失為 Struts實(shí)踐中的一個(gè)好方法。是唯一要注意的技巧是你必須把 JSP和一個(gè) Struts action聯(lián)系起來。即使該 Action只是一個(gè)很基本的很簡單 JSP,也總是要調(diào)用一個(gè) Action,再由它調(diào)用 JSP。 最后要說明的是,并不是所有的容器都能支持這個(gè)特性。 WebLogic早期的版本不能解釋 Servlet聲明,因此無法提供支持,據(jù)報(bào)道在新版本中已經(jīng)改進(jìn)了??傊褂弥跋葯z查一下你的 Servlet容器。 使用 Prebuilt Action 類提升開發(fā)效率 Struts framework帶有好幾個(gè) prebuilt Action類,使用它們可以大大節(jié)省開發(fā)時(shí)間。其中最有用的是 和 . 使用 ForwardAction 在應(yīng)用程序中,可能會(huì)經(jīng)常出現(xiàn)只要將 Action對(duì)象轉(zhuǎn)發(fā)到某個(gè) JSP的情況。 在上一點(diǎn)中曾提到總是由 Action調(diào)用 JSP是個(gè)好習(xí)慣。如果我們不必在 Action中執(zhí)行任何業(yè)務(wù)邏輯,卻又想遵循從 Action訪問頁面的話,就可以使用 ForwardAction,它可以使你免去創(chuàng)建許多空的Action類。運(yùn)用 ForwardAction的好處是不必創(chuàng)建自己的 Action類,你需要做的僅僅是在 Struts配置文件中配置一個(gè) Action mapping。 舉個(gè)例子,假定你有一個(gè) JSP文件 ,而且不能直接調(diào)用該頁面,必須讓程序通 24 過一個(gè) Action類調(diào)用,那么,你可以建立以下的 Action mapping來實(shí)現(xiàn)這一點(diǎn): 正如你看到的,當(dāng) /home 被調(diào)用時(shí) , 就會(huì)調(diào)用 ForwardAction 并把請(qǐng)求轉(zhuǎn)發(fā)到 頁面 . 再討論一下不通過一個(gè) Action類直接轉(zhuǎn)發(fā)到某個(gè)頁面的情況,必須注意我們?nèi)匀皇褂迷刂械?forward屬性來實(shí)現(xiàn)轉(zhuǎn)發(fā)的目標(biāo)。這時(shí)元素定義如下: 以上兩種方法都可以節(jié)省你的時(shí)間,并有助于減少一個(gè)應(yīng)用所需的文件數(shù)。 使用 DispatchAction Disp
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1