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

正文內(nèi)容

struts教程-資料下載頁

2025-08-12 12:14本頁面

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

  

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