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

正文內容

struts教程(編輯修改稿)

2024-09-26 12:14 本頁面
 

【文章內容簡介】 e) throws , 9 當 Controller 收到客戶的請求的時候,在將請求轉移到一個 Action 實例時,如果這個實例不存在,控制器會首先創(chuàng)建,然后會調用這個 Action 實例的 execute()方法。 Struts Framework 為應用系統(tǒng)中的每一個 Action 類只創(chuàng)建一個實例。因為所有的用戶都使用這一個實例,所以你必須確定你的 Action 類運行在一個多線程的環(huán)境中。下圖顯示了一個 execute()方法如何被訪問: Action 實例的 execute()方法 注意,客戶自己繼承的 Action 子類,必須重寫 execute()方法,因為 Action 類在默認情況下是返回 null的。 Struts Action Mapping 上面講到了一個客戶請求是如何被控制器轉發(fā)和處理的,但是,控制器如何知道什么樣的信息轉發(fā)到什么樣的 Action 類呢?這就需要一些與動作和請求信息相對應的映射配置說明。在 struts 中,這些配置映射信息是存儲在特定的 XML 文件(比如 )。 這些配置信息在系統(tǒng)啟動的時候被讀入內存,供 struts framework 在運行期間使用。 在內存中,每一個 action元素都與 。下表就顯示了一個登陸的配置映射。 上面的配置表示:當可以通過 /(此處假設配置的控制器映射為 *.do)提交請求信息的時候,控制器將信息委托 處理。調用 LogonAction 實例的 execute()方法。同時將 Mapping 實例和所對應的 LogonForm Bean 信息傳入。其中name=LogonForm,使用的 formbean 元素所聲明的 ActionForm Bean。有關 formbean的申明如下顯示。 actionmappings action path=/logonAction type= name=LogonForm scope=request input= validate=false forward name=wele path=// forward name=failure path=/ / /action /actionmappings formbeans formbean name=LoginForm type=/ /formbeans 10 使用 ActionForward 導航 元素 forward則表示了當 Action實例的 execute()方法運行完畢或,控制器根據(jù) Mapping可將響應信息轉到適當?shù)牡胤?。如上面現(xiàn)實,如果客戶登陸成功,則調用 wele forward,將成功信息返回到 / 頁面。 在你的 execute()方法的結尾可以使用下面的實例代碼而返回 wele forward。當然你的 wele forward 必須在 action 元素屬性中定義,正如上面所聲明的那樣。 ActionForward 對象是配置對象。這些配置對象擁有獨一無二的標識以允許它們按照有意義的名稱如 “success”, “failure”等來檢索。 ActionForward 對象封裝了向前進的 URL 路徑且被請求處理器用于識別目標視圖。 ActionForward 對象建立自 forward元素位于。下面是一個 Struts 中 forward元素例子,屬于 action元素范圍。 action path=/editCustomerProfile type= name=customerProfileForm scope=request forward name=success path=// forward name=failure path=// /action 基于執(zhí)行請求處理器的 execute(…) 方法的結果,當傳遞一個值匹配指定于 forward元素中 name 屬性的值的時候,下一個視圖可以在 execute(…) 方法中被開發(fā)者用方便的方法(…) 選擇。 (…)方法既從它的本地范圍又從全局范圍提供一個 ActionForward 對象,該對象返回至RequestProcessor 以 (…) 或 (…) 調用下一個視圖。當 forward元素有 redirect=“false”屬性或 redirect 屬性不存在的時候,(…) 被執(zhí)行;當 redirect=“true”是,將調用 sendRedirect(…) 方法。下例舉例說明了 redirect 屬性的用法: forward name=success path=/ redirect=true/ 如果 redirect=true, URL建立如 /contextPath/path因為 (…)中解釋 URL 采用 ”/”開頭相對于 servlet 容器根目錄。 如果 redirect=false, URI 建立如 /path 因為 (…) 采用虛擬目錄相關 URL。 在此稍稍說一下有關 globalforwards的概念。其在配置文件中描述了整個應用系統(tǒng) 可以使用的 ActionForward,而不是僅僅是一個特定的 Action。 globalforwards forward name=logout path=// forward name=error path=// /globalforwards return ((wele))。 11 Struts ActionForm Bean 捕獲表單數(shù)據(jù) 在上面講解 ActionServlet, Action Classes 和 Action Mapping 的時候,我們都提到了ActionForm Bean 的概念。一個應用系統(tǒng)的消息轉移(或者說狀態(tài)轉移)的非持久性數(shù)據(jù)存儲,是由 ActionForm Bean 的負責保持的。 ActionForm 派生的對象用于保存請求對象的參數(shù),因此它們和用戶緊密聯(lián)系。 一個 ActionForm 類 被 RequestProcessor 建立。這是發(fā)生在已完成向前進到一個 URL,該 URL 為映射到控制器 servlet 而不是 JSP 和相應的動作映射指定的表單屬性的。在這個情況下,如果沒有在指定的活動范圍內找到, RequestProcessor 將嘗試尋找可能導致創(chuàng)建一個新 ActionForm 對象的表單 bean。該 ActionForm 對象在指定的活動范圍內被用 action元素的 name 屬性找到; RequestProcessor 將隨后重新安排表單屬性,用請求時參數(shù)填充表單,隨即調用表單對象的 validate(…) 方法以履行服務器端用戶輸入驗證。僅當 ActionMapping對象中 validate 屬性被設為 true 時, validate(…) 方法被調用;這就是默認的行為。(parameterName)被用于得到一個 String[]對象,它用來表單填充;驗證的結果應該是一個 ActionErrors對象,用 證錯誤給用戶。 ActionForm 也可以被用于為當前用戶保存即將被一個視圖引用的中 間模型狀態(tài)。 當一個表單對象被 RequestProcessor 找到,它被傳遞到請求處理器的 execute(…) 方法。一個 ActionForm 對象也可以被請求處理器建立。表單對象建立目的是提供中間模型狀態(tài)給使用請求范圍 JSP;這將確保對象不會在有效性過期后仍然存在。默認的,所有的表單都被保存為會話范圍。會話中表單對象脫離有效性的存在可能導致浪費內存,同樣的,請求處理器必須跟蹤保存在會話中的表單對象的生命周期。一個好的捕獲表單數(shù)據(jù)的實踐是為橫跨多用戶交互的相關表單用一個單獨的表單 bean。 表單 bean 也可以在反 饋的時候用來儲存能夠被自定義標簽改變的中間模型狀態(tài)。在視圖中標簽用法避免結合 Java 代碼,因此要成一個好的任務劃分, web 生產組主要處理標志,而應用開發(fā)組主要處理 Java 代碼。標簽因素退出訪問中間模型狀態(tài)的邏輯;當訪問嵌套的對象或當通過聚集列舉時這個邏輯可能很復雜。 注意:在 中, ActionForm的校驗功能,逐漸被剝離出來(當然依然可以使用)。使用了 validator framework對整個應用系統(tǒng)的表單數(shù)據(jù)驗證進行統(tǒng)一管理。相信信息請參考: 在 ActionForm 的使用中, Struts 提倡使用到值對象( Value Object)。這樣將客戶或開發(fā)人員,對數(shù)據(jù)狀態(tài)與對象狀態(tài)能夠更加清晰的理解和使用。 對于每一個客戶請求, Struts framework 在處理 ActionForm 的時候,一般需要經(jīng)歷如下幾個步驟: (1)檢查 Action 的映射,確定 Action 中已經(jīng)配置了對 ActionForm 的映射 (2)根據(jù) name 屬性,查找 form bean 的配置信息 (3)檢查 Action 的 formbean 的使用范圍, 確定在此范圍下,是否已經(jīng)有此 form bean的實例。 (4)假如當前范圍下,已經(jīng)存在了此 form bean 的實例,而是對當前請求來說,是同一種類型的話,那么就重用。 (5)否則,就重新構建一個 form bean 的實例 (6) form bean 的 reset()方法備調用 (7)調用對應的 setter 方法,對狀態(tài)屬性賦值 12 (8)如果 validatede 的屬性北設置為 true,那么就調用 form bean 的 validate()方法。 ( 9)如果 validate()方法沒有返回任何錯誤,控制器將 ActionForm 作為參數(shù),傳給Action 實例的 execute()方法并執(zhí)行。 注意:直接從 ActionFrom 類繼承的 reset()和 validate()方法,并不能實現(xiàn)什么處理功能,所以有必要自己重新覆蓋。 Struts 的其他組件 Struts framework本身提供了很多可擴展的組件或 sub framework,方便的開發(fā)人員在其構架上構建 web 層的應用系統(tǒng)。比如 upload,collections ,logging等等。讓我們來看看兩個比較重要的組件: validationg framework 和 struts taglib。有關其他組件請參考 Struts用戶手冊( Validation Framework for Struts 在 中,新增了 validation framework。增加了對 form 數(shù)據(jù)提交的驗證。將原本需要在 ActionFrom Bean 的 validate()進行的驗證通過配置文件的描述進行驗證。 有關其詳細信息,請參考 。個人建議對于小型應用系統(tǒng)可以采用這種配置方式,但是對于應用系統(tǒng)中有大量 web 層表單應用的系統(tǒng),并且業(yè)務需求變動比較大的,使用 validation framework 可能會加重開發(fā)難度、系統(tǒng)維護難度??梢越梃b validation framework 的 Javascript Validator Tag。 Struts TagLib struts 提供了一組可擴展的自定義標簽庫( TagLib),可以簡化創(chuàng)建用戶界面的過程。目前包括: Bean Tags, HTML Tags, Logic Tags, Nested Tags, Template Tags 這幾個 Taglib。有關 Struts Taglib 的結構和使用,可以參考前面有關 Cutomer Tag Lib 的介紹,有關起詳細資料,請參考 BeanUtils 這個組件的全稱是 Bean Introspection Utilites。是屬于 Jakarta Commons項目組的。主要是幫助構建 javabean 的屬性操作的( getter,setter),已經(jīng)提供一種動態(tài)定義和訪問 bean的屬性。有關詳細信息,請參考。 如果各位對這方面有很興趣,可以參考一些有關 java 反射( Reflectio)方面的資料。 13 Collections 這個組件主要是提供了一些集合或列表對象,在原有的 java collections framework的基礎上進行了擴展。詳細資料請參考: 以及 Digester 這個組件翻譯成中文的意思是 “匯編 ”。其主要功能是根據(jù) xml配置文件,初始化系統(tǒng)的一些 java類對象。 Digester 幫助你指定 XML 與 java對象之間映射模型,而且允許客戶話定制映射規(guī)則( rules)。詳細資料請參考 Struts 配置文件簡介 Struts framework 根據(jù)配置 文件使 得 ServletAction ,A ctionMapping,Action , ActionForm 這幾個不同層次的組件相互交互,協(xié)調的工作。這些配置文件是在系統(tǒng)啟動的時候,讀入導內存中,供控制器使用的。 Struts framework 主要包括三部分的配置描述,一個是指定有關 Struts Controller 及其相關的的配置描述( Initializ
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1