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

正文內(nèi)容

論基于mvc實(shí)現(xiàn)的電子政務(wù)系統(tǒng)-資料下載頁

2025-06-28 23:04本頁面
  

【正文】 很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,包括JNDh JDBC和J1J1J o (2)視圖層(View)組件 stets應(yīng)用中的view部分主要是通過JSP技術(shù)實(shí)現(xiàn)的[42],同時(shí)提供了Struts標(biāo)簽庫和自定義的標(biāo)記庫以供使用。Java開發(fā)者很容易在JSP當(dāng)中過度使用Java小程序,直接嵌入條件業(yè)務(wù)邏輯和循環(huán)。MVC解決了這一問題,通過把復(fù)雜的處理分離到Model和Controller組件中,從而使JSP本身更小,這顯然大大簡化并加速了開發(fā)、測試及維護(hù)的工作。為實(shí)現(xiàn)這個(gè)目的,Struts通過向用戶提供能夠進(jìn)行簡單邏輯處理的標(biāo)簽庫,這些標(biāo)簽可以是標(biāo)準(zhǔn)的JSP標(biāo)簽或客戶化標(biāo)簽。通過這些自定義標(biāo)記可以非常好地和系統(tǒng)的Model部分交互,實(shí)現(xiàn)和Model部分中的,完成對用戶數(shù)據(jù)的封裝,同時(shí)這些自定義標(biāo)記還提供了像模板定制等多種顯示功能。從而使得在這些JSP文件中沒有業(yè)務(wù)邏輯,也沒有模型信息,只有負(fù)責(zé)顯示結(jié)果的標(biāo)簽。此外通過使用標(biāo)簽,Struts還簡潔的解決了國際化用戶界面問題。 視圖也包括Ac}ionForm Beano ActionForm Bean具有JavaBean的常規(guī)方法,還包含一些特殊的方法,用于驗(yàn)證HTML表單數(shù)據(jù)以及將其屬性設(shè)置為默認(rèn)值。視圖將模型的當(dāng)前狀態(tài)展示給用戶,具體的顯示方法由視圖負(fù)責(zé),因此一個(gè)模型可以選擇多個(gè)不同視圖。在模型狀態(tài)改變后,通過模型和視圖之間的協(xié)議,視圖得知這種改變并修改自己的顯示。對于用戶的輸入,視圖將它們交給控制器處理。 口)控制器(Controller)組件 控制器接受客戶端的請求,決定執(zhí)行何種業(yè)務(wù)邏輯功能來響應(yīng)請求,然后委派適當(dāng)?shù)囊晥D組件來顯示更新后的用戶界面。在Straits中ContraHer功能由ActionServlet和Ac}ionMapping對象構(gòu)成:核心是一個(gè)Servlet類型的對象ActionServlet,它用來接受客戶端的請求。ActionServlet包括一組基于配置文件生成的ActionMapping對象,每個(gè)ActionMapping對象實(shí)現(xiàn)了一個(gè)請求到一個(gè)具體的Model部分中Actian處理器對象之間的映像。Struts框架的處理流程清楚的體現(xiàn)了MVC系統(tǒng)的特點(diǎn),Struts Controller Action5ervlet處理客戶請求,利用配置的ActionMapping對象把請求映像到Actian處理器對象進(jìn)行處理。Action處理對象訪,處理和響應(yīng)客戶請求,它還調(diào)用后臺(tái)的Bean組件,這些組件封裝了具體的業(yè)務(wù)邏輯。 由此可以看出ActionServlet是Controller層的核心組件,在MVC中扮演的是中央控制器的角色。ActionMapping則制定了不同業(yè)務(wù)邏輯或者流程的運(yùn)行方向,其中struts}可以被稱作配置管理器[43j Struts框架核心包和組件 整個(gè)Struts大約有15包,近200個(gè)類所組成[a4}asj,而且數(shù)量還在不斷的擴(kuò)展。在此不能一一介紹,只能列舉幾個(gè)主要的簡要的介紹一下。下面將簡略說明目前Struts API中基本的幾個(gè)包,包括actlon,actions,taglib等。其中action是整個(gè)Struts framework的核心。 (1) 基本上,控制整個(gè)Struts framework的運(yùn)行的核心類、組件都在這個(gè)包中,比如上面提到的控制器AdionServlet, Action, ActionForm,ActionMapping等等。Struts。增加了動(dòng)態(tài)擴(kuò)展生成FonmBeaa功能。 (2) 這個(gè)包的主要作用是提供客戶的請求和業(yè)務(wù)邏輯處理之間的特定適配器轉(zhuǎn)換功能,而 ,Action包的DyaaActionForm組件所取代。 (3) 這不是一個(gè)包,而是一個(gè)客戶標(biāo)簽類的集合。包括Bean Tags* HTML Tags,Logic Tags, Nested Tags, Template Tags這幾個(gè)用于構(gòu)建用戶界面的標(biāo)簽類。 {4) Struts為了更好支持web application的應(yīng)用,統(tǒng)一了一些常用服務(wù)的支持,比如Connection Pool和Message Sourcx a 價(jià)) Struts framework中增加了validator framework,用于動(dòng)態(tài)的配置from窗體的驗(yàn)證。 圖3巧顯示了以上幾個(gè)lib包的關(guān)系[42]。圖35 Struts關(guān)鍵lib包關(guān)系圖 Struts提供了豐富的lib包供程序開發(fā)人員使用,通過使用lib包,可以非常容易的解決編程實(shí)現(xiàn)中常遇到的問題,而且這些lib包都是非常成熟的,因此大大降低了系統(tǒng)開發(fā)的難度,減少了系統(tǒng)存留bug的可能性,因此系統(tǒng)的可靠性也隨之增強(qiáng)。Lib包只是提供了解決具體細(xì)節(jié)問題的方法和類,并沒有提供控制流程的作用,在Stntts框架中具體實(shí)現(xiàn)流程控制、轉(zhuǎn)向、影射等作用的則是各種組件,不同的組件具有不同的作用,分工明確,而且組件和組件之間接口清晰,藕合度最小化。表31列出了Struts框架中的關(guān)鍵組件。表31 Struts關(guān)鍵組件表┌───────┬─────────────┐│ActionSerdlet │控制器 │├───────┼─────────────┤│ActionClass │包含事務(wù)邏輯 │├───────┼─────────────┤│ActionForm │顯示模塊數(shù)據(jù) │├───────┼─────────────┤│ActianMapping │幫助控制器將請求映射到操作│├───────┼─────────────┤│ActionForward │用來指示操作轉(zhuǎn)移的對象 │├───────┼─────────────┤│ActionError │用來存儲(chǔ)和回收錯(cuò)誤 │└───────┴─────────────┘ (1) ActionServlet . . HttpServlet類,是Struts框架的核心組件,它充當(dāng)著整個(gè)框架的控制器??刂破鰽dionServlet主要負(fù)責(zé)將HTTP的客戶請求信息組裝后,根據(jù)配置文件的指定描述,尋找相應(yīng)的業(yè)務(wù)邏輯單元,轉(zhuǎn)發(fā)到適當(dāng)?shù)奶幚砥鳌O袼械膕ervlet一樣,它生存在容器中,比如Tomcat等應(yīng)用服務(wù)器。當(dāng)容器啟動(dòng)時(shí)讀入配置信息,通知容器應(yīng)該裝入那些類文件。 ActionServlet是由一組ActionMapping{)對象來配置組成的,每個(gè)ActionMapping對象實(shí)現(xiàn)一個(gè)請求到一個(gè)具體Action()類之間的映射。一個(gè)標(biāo)準(zhǔn)的Servlet是由具有如下配置信息。servlet servletnameaction/servletname servletclass/servletclaas initparam paramnameconfig/paramname param value/WFrBINF//paramvalue /init param loadonstratup0/loadonstartnp/servletservletmapping servletnameactionservletname urlpattem*.do/urlpatterns/serVletmapping. 當(dāng)一個(gè)請求隨著符合Servlet上下文路徑的組件提交時(shí),容器將其轉(zhuǎn)發(fā)給AetionServlet。不匹配的請求則不轉(zhuǎn)發(fā)到ActionServlet。如果ActionServlet不能滿足應(yīng)用的需要,則可以通過繼承來實(shí)現(xiàn)自己的類。}中具體指定控制器及參數(shù)。 {2) ActionClass Action類所做的工作就是具體的業(yè)務(wù)操作。Action類中最為常用的是execu城)方法。當(dāng)Controller收到客戶的請求的時(shí)候,就會(huì)將請求轉(zhuǎn)移到一個(gè)Action實(shí)例,然后會(huì)調(diào)用這個(gè)Action實(shí)例的execut城)方法。Struts Framework為應(yīng)用系統(tǒng)中的每一個(gè)Action類只創(chuàng)建一個(gè)實(shí)例。所有的用戶都使用這一個(gè)實(shí)例,一個(gè)多線程的環(huán)境中。注意,客戶自己繼承的Action子類,必須重寫eaeca城防法,因?yàn)锳ction類在默認(rèn)情況下是返回Null的。 Actin。類是控制器的一部分,通過繼承Action類來實(shí)現(xiàn)具體的執(zhí)行類。具體Action類的功能一般都在execute方法中完成,其中主要涉及到幾個(gè)方面:輔助ActionForna進(jìn)行表單數(shù)據(jù)的檢查、執(zhí)行必要的業(yè)務(wù)邏輯,比如存取數(shù)據(jù)庫,讀取文件等等、更新服務(wù)器端的bean數(shù)據(jù),并以ActionForward對象的形式返回給ActionServlet。 由于在Actio。和ActionForm中都可以實(shí)現(xiàn)驗(yàn)證方法,可以根據(jù)如下原則,視圖級的驗(yàn)證放在ActionForm中,比如Email格式驗(yàn)證,利用ValidatorFon”可以輕松的完成。而與具體業(yè)務(wù)相關(guān)的驗(yàn)證則要放到Action中。 A幣加是一個(gè)控制器類,不應(yīng)該進(jìn)行核心業(yè)務(wù)邏輯的處理,這也符合MVC模式分層思想原則。建議將主要業(yè)務(wù)邏輯分離到單獨(dú)的Javaliean或者EJH組件中,而Action類只是負(fù)責(zé)錯(cuò)誤處理和流程控制。一般情況下,請求與業(yè)務(wù)邏輯分開。這樣的分離,使得客戶請求和Action類之間可以有多個(gè)點(diǎn)對點(diǎn)的映射。而且Action類通常還提供了其它的輔助功能,如:認(rèn)證( authorization )、日志( logging)和數(shù)據(jù)驗(yàn)證(validation ).考慮到重用性的原因,在執(zhí)行業(yè)務(wù)邏輯的JavaBean或者EJB中不要引用任何與web相關(guān)的對象,而應(yīng)該轉(zhuǎn)化為普通的Java對象。 (3) ActionForm ActionSe}vlet使用ActionForm來保存請求的參數(shù)。ActionForm是JavaBean}這些Bean的屬性名稱與IiTTP請求參數(shù)名稱相同??刂破鲗⒄埱髤?shù)傳遞到ActionForm的實(shí)例,然后將這個(gè)實(shí)例作為傳遞參數(shù)的載體。ActionForm的主要功(如果在客戶指定的情況下,還包括對數(shù)據(jù)進(jìn)行校驗(yàn))。Action負(fù)責(zé)對系統(tǒng)數(shù)據(jù)狀態(tài)的保持,而Actio。則負(fù)責(zé)根據(jù)業(yè)務(wù)邏輯的需要,對數(shù)據(jù)狀態(tài)進(jìn)行修改,在改變系統(tǒng)狀態(tài)后,ActionFonn則自動(dòng)的回寫新的數(shù)據(jù)狀態(tài)并保持。在ActionForm的使用中,Struts提倡使用值對象。這樣客戶或開發(fā)人員,對數(shù)據(jù)狀態(tài)與對象狀態(tài)能夠更加清晰的理解和使用。 ActionForm表示HTTP窗體中的數(shù)據(jù),可以將其看作是模型和視圖的終結(jié),負(fù)責(zé)保存視圖zhogn的數(shù)據(jù)供模型或者視圖使用。Stiutsl,l文檔中把它比作1}和Acti二之間的防火墻,體現(xiàn)了ActionForm具有的過濾保護(hù)作用,只有通過,必須繼承來實(shí)現(xiàn)具體類。ActionForm首先利用屬性的get和set方法初始化,然后ActionForm中的validate方法被調(diào)用,可以在其中檢查參數(shù)的有效性,并將錯(cuò)誤信息以ActionErrvrs的形式返回。通過驗(yàn)證,ActionForm將傳遞給Action類。 由于ActionForm對應(yīng)web頁面,因此隨著頁面的增加,增加,并且在每個(gè),為解決這個(gè)問題,可以為整個(gè)應(yīng)用實(shí)現(xiàn)一個(gè)AetionFonn或者至少一個(gè)模塊對應(yīng)于一個(gè)ActionForm。但是這種方式通常不推薦使用。 (4)ActionMapping ActionMapping包含有關(guān)特定事件如何映射到特定Action的信息。輸入事件通常是在HTTP請求表單中發(fā)生的,servlet容器將HTTP請求轉(zhuǎn)換為HttpServletRequest??刂破鞑榭摧斎胧录⒄埱蠓峙山o某個(gè)Action類,Struts}}amp。}確定控制器調(diào)用哪個(gè)Action類。一組ActionMapping將其放入ActionMappin,容器中 ActionServlct將ActionMapping傳遞給Action類,使Action可訪問用于控制流程的信息. {5) ActionForward Action處理完成后,將返回一個(gè)ActionForward類,決定處理結(jié)果轉(zhuǎn)發(fā)的目標(biāo)組件。如果ActionForward為null,則ActionServlet不做任何轉(zhuǎn)向。如果請求是另一個(gè)Action URL,容器將請求返回給ActionServlet。否則容器將發(fā)送請求到其他Servlet。如果ActionForward設(shè)為重定向(redirect),請求將被返回給瀏覽器,重新提交一個(gè)新請求到特定地址。 Struts框架配置文件 Struts中各個(gè)組件的映射關(guān)系主要通過XML格式的配置文件進(jìn)行定義。配置文件定義了各個(gè)組件的映射關(guān)系,描述了組件之間參數(shù)形式等,通過配置文件,我們就完全可以清楚的了解Struts框架中各個(gè)組件的映射關(guān)系以及業(yè)務(wù)控制流程等。 Serviet要求的web應(yīng)用部署描述,根據(jù)這個(gè)配置文件,應(yīng)用服務(wù)器容器載入和運(yùn)行相應(yīng)的應(yīng)用。 Servlet規(guī)范中定義的。web容器應(yīng)該知道如何配置servlet和其他對象,比如Struts框架中的ActionServlet組件和標(biāo)簽庫等。 Struts框架使用的各種組件。Struts配置文件的信息在系統(tǒng)啟動(dòng)時(shí)就讀如內(nèi)存,并配合ActionServlet組件,創(chuàng)建應(yīng)用的控制。另外,這個(gè)配置文件中的每個(gè)組件都是Java對象。
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1