亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Struts框架技術(shù)簡析

        2012-09-25 01:29:10王剛
        長春師范大學(xué)學(xué)報 2012年9期
        關(guān)鍵詞:表單開發(fā)人員實例

        王剛

        (陜西財經(jīng)職業(yè)技術(shù)學(xué)院信息工程系,陜西咸陽 712000)

        Struts框架技術(shù)簡析

        王剛

        (陜西財經(jīng)職業(yè)技術(shù)學(xué)院信息工程系,陜西咸陽 712000)

        本文簡要介紹了Struts框架技術(shù)及其相關(guān)內(nèi)容,并著重對Struts框架的組件和Struts框架的高級特性進行了深入的探討。

        Struts框架;Struts框架的組件;Struts框架的高級特性

        1 Struts概述

        作為Sun JavaEE平臺下MVC模式的Struts框架,來源于Craig McClanahan最初的構(gòu)思,它包含兩個主要的技術(shù)——Servlet和JSP。Struts是Apache組織提供的一項開放源碼工程,使用起來簡單、方便,實現(xiàn)的速度快,對于應(yīng)用系統(tǒng)的開發(fā)可以很好地滿足。Struts主要指的是使用在建筑和舊式飛機中的起支撐作用的金屬架。之所以把這個框架命名為“Struts”,是提醒我們要記住那些在房屋、建筑物、橋梁以及踩高蹺時起著一定支撐作用的基礎(chǔ)支架,這也是對Struts最為典型的描述。建造一個建筑物時,建筑工程師會考慮給建筑物的每一層建造相應(yīng)的支柱,以起到對整個建筑物的支撐作用。同樣,軟件工程師使用Struts的時候,會給業(yè)務(wù)應(yīng)用的每個層次提供相應(yīng)的支持,就是為了幫助開發(fā)人員在采用MVC設(shè)計模型開發(fā)Web應(yīng)用程序時,減少相應(yīng)系統(tǒng)的開發(fā)時間。如果想混合使用Servlets和JSP的優(yōu)點來構(gòu)建可擴展的應(yīng)用,Struts將會是非常好的選擇。

        Struts是一個通用的用來實現(xiàn)MVC模式的框架,其中包括模型、視圖、控制器和一個XML文件。在這個框架中,系統(tǒng)的狀態(tài)和業(yè)務(wù)邏輯是模型的主要表現(xiàn)形式,其中ActiomFormBean表現(xiàn)的是系統(tǒng)的有關(guān)狀態(tài),而JavaBean或EJB組件主要用來實現(xiàn)業(yè)務(wù)邏輯;而通過JSP就可以建立一個視圖,同時由于視圖本來就含有那些自定義的可用于擴充的標簽 (Tag1ib),因而就可以大大地簡化相應(yīng)用戶界面的實現(xiàn)過程。通常是通過ActionServlet類和Action類來實現(xiàn)Struts框架的控制器,作為Struts框架中的核心組件ActionServlet類,它的主要作用就是把用戶相關(guān)的HTTP請求接收起來,并與配置信息進行核對,將請求轉(zhuǎn)發(fā)到相應(yīng)的Action對象。然而調(diào)用模型的有關(guān)方法是由Action類來完成的,它可以對模型的狀態(tài)進行更新,同時還應(yīng)輔助進行對應(yīng)用程序的流程控制;Struts有兩個相應(yīng)的配置文件web.xml和struts-config.xml,其中web.xml除了要對ActionServlet進行相應(yīng)的配置以外,還要對Web表示層中使用的有關(guān)struts標簽庫進行相應(yīng)的聲明。而Strutsconfig.xml則描述的是與Struts相關(guān)的文件,主要是用來存儲描述用戶請求的路徑以及相應(yīng)的Action映射關(guān)系的配置信息的。

        JSP技術(shù)對動態(tài)頁面處理邏輯進行封裝,通常通過Java編程語言類的XML標簽和scriptlets來進行。與此同時,借助于tags和scriptlets相關(guān)的網(wǎng)頁還可以把保存在服務(wù)端的資源的應(yīng)用邏輯調(diào)用出來。將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分開來,通過JSP技術(shù)就可實現(xiàn)。因此,JSP技術(shù)可以更好地支持可復(fù)用的基于構(gòu)件的系統(tǒng)設(shè)計,因而采用JSP技術(shù)可以輕易地實現(xiàn)Web應(yīng)用程序。如果要訪問JSP頁面的請求,那么首先必須把其中相關(guān)的程序通過Web服務(wù)器執(zhí)行,然后客戶端會接收到程序執(zhí)行的結(jié)果以及JSP文件中有關(guān)的HTML代碼。JSP通常把一個有關(guān)的HTML文本回傳給客戶端,那么客戶通過瀏覽器很容易對相關(guān)內(nèi)容進行直接瀏覽。

        HTML源程序代碼以及嵌入HTML之中的Java源程序代碼組合在一起就構(gòu)成了JSP的頁面。通常,借助于頁面客戶端發(fā)出請求,服務(wù)器接收到請求以后,通過對這些Java源程序代碼加工,就可以生成相應(yīng)的HTML頁面,然后將其傳遞給客戶端瀏覽器。JavaServlet是JSP必不可少的組成部分,是JSP的技術(shù)基礎(chǔ),要成功實現(xiàn)大型的Web應(yīng)用系統(tǒng),只有把JavaServlet和JSP很好地結(jié)合起來才能實現(xiàn)。與Java技術(shù)相同,JSP操作簡單,實現(xiàn)容易,是一種完全面向?qū)ο蟮姆椒ǎ磺移渚哂衅脚_無關(guān)性,開發(fā)出的系統(tǒng)穩(wěn)定、可靠,主要面向互聯(lián)網(wǎng)等特征。可以用一個簡單的公式來表示JSP,即JSP=HTML+Java。

        Struts最大的一個優(yōu)點就是它是一種開源軟件,同時,標簽庫和頁面導(dǎo)航也在某些方面反映出了Struts的優(yōu)勢。標簽庫是Struts的標記庫,靈活運用可以極大地提高開發(fā)效率。由于頁面導(dǎo)航的存在,因而開發(fā)出來的系統(tǒng)結(jié)構(gòu)更加合理,層次也比以前更清晰,所以它是Struts今后主要發(fā)展的對象。只要配置好一個文件,通過該文件就可以輕易地把系統(tǒng)相應(yīng)的各個部分聯(lián)系起來,所以非常有利于系統(tǒng)今后的維護工作。特別是要繼續(xù)去實現(xiàn)某個項目,而又換了一批不同的技術(shù)人員時,它的這種優(yōu)點表現(xiàn)得更加突出。雖然Struts具備這些優(yōu)勢,但初次接觸該技術(shù)的開發(fā)人員仍需要不斷地學(xué)習(xí),有時還需要打亂技術(shù)人員編寫網(wǎng)頁的固有方式。

        2 Struts框架的組件分析

        2.1 ActionServlet

        在Struts中,ActionServlet主要是接收來自于用戶的HTTP請求,同時依據(jù)系統(tǒng)配置信息的要求,把相應(yīng)的請求傳遞給有關(guān)的的Action對象。在實施的過程中,首先要判斷有沒有Action對象,如果沒有,應(yīng)該設(shè)計出來相應(yīng)的對象;然后在請求被接收的同時,會有一個相應(yīng)的Action實例收到通過控制器傳來的Action對象,當(dāng)然,在進行傳遞的時候也會判斷有沒有相應(yīng)的實例,如果沒有,同樣應(yīng)該先把相應(yīng)實例的execute()方法設(shè)計出來。

        在Struts的框架中,ActionServlet主要承擔(dān)的是中心控制器的角色,會自動地去繼承javax.servlet.http包中的HttpServlet類。為了對來自終端的請求及時響應(yīng),通常它會把中心的一個位置給留下來。ActionServlet控制器所起的主要作用就是把HTTP客戶端的請求信息組合起來,通過相應(yīng)的已經(jīng)配置好的文件進行描述,將其傳遞到相應(yīng)的處理器中。通常,中心控制器會給所有表示層的請求提供一個集中的訪問點。一旦開發(fā)人員在開發(fā)過程中遇到問題,只要通過這個控制器的一些有關(guān)概念,這些問題的困難程度就被有效地降低了,如管理視圖、會話及表單數(shù)據(jù)。相應(yīng)地,它也具備某些通用機制,如錯誤及異常處理、導(dǎo)航、國際化、數(shù)據(jù)驗證、數(shù)據(jù)轉(zhuǎn)換。

        當(dāng)用戶的請求被傳遞到服務(wù)器端的時候,首先ActionServlet控制器會獲得相應(yīng)的信息。當(dāng)控制器接收到相關(guān)的請求后,會把這些請求信息傳遞到相應(yīng)的輔助類中去,此時這些輔助的類就會去處理那些相關(guān)的業(yè)務(wù)操作,而這些相關(guān)的操作必須對應(yīng)用戶的請求。在上面提到的Struts那個輔助類就是 org.apache.struts. action.Action。一般情況下,開發(fā)人員應(yīng)該主動去繼承Aciton類,那樣有助于實現(xiàn)開發(fā)人員自己的Action實例。

        2.2 Action

        一個Action類的角色,就是作為行動和業(yè)務(wù)邏輯處理適配器之間的客戶端的請求,其主要做的就是需要把它從業(yè)務(wù)邏輯中分離開來。為了實現(xiàn)這種分離,有映射點存在于多個客戶請求和Action類之間。通常情況下,Action類還有很多的輔助功能,如:認證(授權(quán))、日志(記錄)、數(shù)據(jù)驗證(驗證)。

        Execute()是Action主要使用的方法。當(dāng)客戶發(fā)出的請求被Controller收到的時候,這個請求將被移動到一個相應(yīng)的Action實例中,如果找不到相應(yīng)的實例,控制器就會重新創(chuàng)建一個實例,然后找到這個重新創(chuàng)建出來的Action實例的execute()方法,再去調(diào)用它。對于應(yīng)用系統(tǒng)中的Action類來說,Struts框架會為每個類創(chuàng)建一個相應(yīng)的實例。因為同一個實例被所有用戶使用,就必須保證在多線程環(huán)境下運行客戶的Action類。圖1就是execute()方法如何被訪問的過程:

        圖1 Action實例的execute()方法

        2.3 ActionForm

        ActionForm主要用于對用戶的請求參數(shù)進行封裝。為了使請求參數(shù)順利地通過JSP頁面的表單域,一定要保證表單域的名稱和ActionForm參數(shù)是相同的。同時,要在struts-config.xml文件中對所有的Action進行配置,該文件還包含有表單元素。因而ActionForm中定義的所有元素,都應(yīng)該對應(yīng)一個相應(yīng)的表單form-bean元素。

        請求對象的參數(shù)一般被保存在ActionForm派生的對象中,他們和用戶之間是緊密相關(guān)的。通常,通過RequestProcessor來創(chuàng)建出一個相應(yīng)的ActionForm的類。這是發(fā)生在已經(jīng)完成向前的一個URL,該URL是映射到控制器servlet而不是JSP和相應(yīng)的動作映射指定表單的屬性的。出現(xiàn)這個情況時,如果在特定的范圍之內(nèi)沒有發(fā)現(xiàn),RequestProcessor將利用各種可能的方法嘗試著實現(xiàn)一個新的ActionForm對象的表單bean。在特定范圍內(nèi),可利用元素之中的屬性name找到相應(yīng)的ActionForm對象。此時RequestProcessor就會對表單的屬性進行重新設(shè)置,填寫表單與請求中的參數(shù),再通過調(diào)用表單對象的相關(guān)驗證方法,通過服務(wù)器端對用戶的有關(guān)輸入進行驗證。作為一種默認的行為,如果想要去調(diào)用一種驗證方法,只有給驗證ActionMapping對象的值設(shè)置為true的屬性。如果是g.apache.struts.taglib.html.Errors Tag來通知用戶驗證的結(jié)果是不正確的,那就說明此次最終驗證的就是一個ActionErrors對象。ActionForm還有一個作用,那就是保存一個視圖引用的中間模型狀態(tài)給用戶。

        如果RequestProcessor查找到了一個相應(yīng)的表單對象,它就會把這個表單對象轉(zhuǎn)送給請求處理器相應(yīng)的execute(…)方法。通常,一個ActionForm對象也可以通過請求處理器來實現(xiàn)。實現(xiàn)表單對象就是為了給中間模型狀態(tài)使用的JSP提供一個合適的請求范圍,這就可以保證有效期滿后對象是不存在的。在沒有特別聲明的情況下,全部表單的保存形式都表現(xiàn)為會話范圍。在會話過程中,如果表單對象脫離了有效性而獨立存在,極有可能出現(xiàn)浪費內(nèi)存的情況;同時,必須保持相同請求處理器存儲在會話中的對象的生命周期的軌道。通過使用相應(yīng)的表單bean為那些橫跨多個用戶交互形式的有關(guān)表單來獲取相應(yīng)的表單數(shù)據(jù)。在進行反饋的時候表單bean可以被用來保存中間模型的狀態(tài),而這個狀態(tài)就是通過自定義標簽發(fā)生變化的。盡最大的可能不要使視圖的標簽用法和Java代碼相結(jié)合,所以要做好相應(yīng)的工作分工。通常由web制作組來解決標志的有關(guān)問題,而由應(yīng)用程序的開發(fā)組來解決Java代碼的相關(guān)問題。

        3 Struts框架的高級特性

        3.1 驗證

        通常情況下,不會對用戶的輸入進行驗證,但是,一旦出現(xiàn)下面所描述的情況時,就需要通過使用表單bean來進行驗證: (1)表單bean覆蓋超類的驗證方法; (2)元素作為Struts配置文件,它的驗證屬性已經(jīng)確定或者將其默認的值設(shè)為TRUE。一般情況下,bean能夠具備的相關(guān)驗證也是針對那些比較起來不是很難的問題,因為bean中通常就沒有那些與業(yè)務(wù)邏輯有關(guān)的應(yīng)用程序的信息。比如,是否每個用戶都在必需的字段中輸入了相應(yīng)的數(shù)據(jù)?Struts框架的各個組成部分可以進行核查。

        3.2 使用異常處理聲明

        如果要對應(yīng)用程序的相關(guān)邏輯流程進行定義,不要通過寫死在代碼中來實現(xiàn),這是一個較成熟的經(jīng)驗,通常推薦使用的是在代碼以外通過使用配置的方法來進行。這樣的例子在J2EE中是非常多的。從實現(xiàn)EJB的安全性和事務(wù)性行為到描述JMS消息和目的地之間的關(guān)系,很多時候都可以在程序以外對其運行時的有關(guān)處理流程進行定義。在先前版本的Struts框架中,開發(fā)人員必須自己來處理在Struts應(yīng)用之中發(fā)生錯誤的情況。在最新的版本中,這一點已經(jīng)得到了很大的改善。其中,為了便于在系統(tǒng)缺省處理action類實施過程中出現(xiàn)的錯誤,Struts Framework通常會提供一個內(nèi)置的名為ExceptionHandler的類來實現(xiàn)。這作為一個技巧,也是很多有關(guān)framework可擴展的接口之一。

        通常,作為Struts的默認異常處理程序類,其運行的結(jié)果就是生成一個相應(yīng)的ActionError對象,與此同時,還應(yīng)注意要把其保存在特定域內(nèi)(Scope)的對象之中。如果用戶遇到一系列相關(guān)的問題,可通過使用JSP頁面利用錯誤類來告訴用戶所發(fā)生的問題。這樣,如果用戶還不滿意的話,可以輕易地去實現(xiàn)屬于自己的ExcepionHandler類。

        3.3 使用應(yīng)用模塊

        由于應(yīng)用模塊這個概念的出現(xiàn),Struts的應(yīng)用可以被劃分為不同的模塊,而各個模塊都有屬于自己的Struts配置文件,如JSP頁面和Action。這個功能非常好地解決了開發(fā)人員在開發(fā)過程中遇到的一些難以處理的問題。允許同時出現(xiàn)多個配置文件,解決了文件配置單一的問題,使得并行開發(fā)更加可行。如果應(yīng)用模塊同意,Struts可以按照應(yīng)用系統(tǒng)本身所具有的功能對這些相應(yīng)的模塊進行分解。實踐證明這樣是最符合邏輯的,也是最好的。

        如果沒有必要將一個項目劃分成為很多模塊,一個缺省的應(yīng)用模塊會被Struts框架所支持。這樣,就能創(chuàng)建相關(guān)的應(yīng)用程序,且該應(yīng)用程序還具有較好的可移植性,因為應(yīng)用程序會自動作為缺省的應(yīng)用模塊。每一個Struts的應(yīng)用模塊都應(yīng)該設(shè)計好一個屬于自己的單獨的配置文件。創(chuàng)建的Action和ActionForm是屬于自己的且和其他模塊是相對獨立的,對異常處理而言那是更多的。在每個應(yīng)用模塊創(chuàng)建好屬于自己獨立的配置文件后,各個模塊中的Action就應(yīng)該準備好被調(diào)用了。因而,Struts框架所準備好的SwitchAction類就被用到了。同時,應(yīng)用模塊的名字也會被Struts主動加入到URL中,就和應(yīng)用程序的名字被Struts主動加入到URL中是一樣的。作為對框架新的擴展的應(yīng)用模塊,它是非常有利于使用并行方式的團隊開發(fā)的。如果團隊是非常小的,那就沒必要用到這個特性了,也沒有必要使用模塊化了。當(dāng)然,就算是只有一個應(yīng)用模塊,系統(tǒng)還是一樣應(yīng)該正常地運作。

        [1]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2007.

        [2]李智淵.采用Struts框架實現(xiàn)MVC設(shè)計模式[J].甘肅科技縱橫,2005(4):13-14.

        [3]蔡劍,景楠.Java Web應(yīng)用開發(fā):J2EE和Tomcat[M].2版.北京:清華大學(xué)出社,2005.

        Technical Overview of the Struts Framework

        WANG Gang
        (Information Engineering Department of Shanxi Technical College of Finance&Economics, Xianyang 712000,China)

        This article briefly introduces the Struts framework and related contents,and mainly discusses the components and advanced features of the Struts framework.

        Struts framework;components of Struts framework;advanced features of Struts framework

        TP312

        A

        1008-178X(2012)09-0025-04

        2012-02-03

        王 剛(1978-),男,陜西咸陽人,陜西財經(jīng)職業(yè)技術(shù)學(xué)院信息工程系講師,從事計算機應(yīng)用研究。

        猜你喜歡
        表單開發(fā)人員實例
        電子表單系統(tǒng)應(yīng)用分析
        華東科技(2021年9期)2021-09-23 02:15:24
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        淺談網(wǎng)頁制作中表單的教學(xué)
        讓W(xué)indows 10進入開發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        后悔了?教你隱藏開發(fā)人員選項
        電腦愛好者(2015年6期)2015-04-03 01:20:56
        完形填空Ⅱ
        完形填空Ⅰ
        基于Infopath實現(xiàn)WEB動態(tài)表單的研究
        電子世界(2012年24期)2012-12-17 10:49:06
        動態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用*
        三星SMI擴展Java論壇 開發(fā)人員可用母語
        国产视频精品一区白白色| 日韩午夜理论免费tv影院| 伊人情人色综合网站| 久久网站在线免费观看| 国产乱淫h侵犯在线观看| 国精产品一区一区三区有限在线| 国产伦精品免编号公布| 国产精品麻豆欧美日韩ww| 亚洲国产精品久久九色| 国产成人精品自拍在线观看| 亚洲精品一区三区三区在线| 日韩女优精品一区二区三区| 五月天国产成人av免费观看| 九月婷婷人人澡人人添人人爽| 熟女人妻丰满熟妇啪啪| 中文字幕亚洲精品一二三区| 黄色国产一区二区99| 国产专区一线二线三线码| 亚洲18色成人网站www| 999久久久免费精品国产牛牛| 亚洲综合中文一区二区| 国产精品一区二区三区在线蜜桃| 亚洲加勒比久久88色综合| 鲁一鲁一鲁一鲁一澡| 精品久久免费一区二区三区四区| 区一区二区三免费观看视频| 开心久久综合婷婷九月| 欧美精品videosse精子| 亚洲永久无码7777kkk| 亚洲中文字幕精品久久久久久直播| 人妻1024手机看片你懂的| 国产无套内射又大又猛又粗又爽| 日韩一卡2卡3卡4卡新区亚洲| 传媒在线无码| 极品新娘高清在线观看| 日本亚洲视频免费在线看| 麻豆国产精品久久人妻| 国产人妻久久精品二区三区特黄| 亚洲中文字幕久爱亚洲伊人| 亚洲一区二区日韩精品| 亚洲av无码日韩av无码网站冲|