国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Struts應(yīng)用實例:Helloapp應(yīng)用

2019-11-17 06:28:10
字體:
供稿:網(wǎng)友

  本章講解了一個簡單的Struts應(yīng)用例子helloapp應(yīng)用,這個例子可以幫助讀者迅速入門,獲得開發(fā)Struts應(yīng)用的基本經(jīng)驗。該應(yīng)用的功能非常簡單,接受用戶輸入的姓名<name>,然后輸出"Hello <name>" 。開發(fā)helloapp應(yīng)用涉及以下內(nèi)容: 

    分析helloapp應(yīng)用的需求 

    在開發(fā)應(yīng)用時,首先從分析需求入手,列舉該應(yīng)用的各種功能,以及限制條件。helloapp應(yīng)用的需求非常簡單,包括如下需求:
    ?接受用戶輸入的姓名<name>,然后返回字符串"Hello <name> !" 
    ?假如用戶沒有輸入姓名就提交表單,將返回出錯信息,提示用戶首先輸入姓名。
    ?假如用戶輸入姓名為"Monster",將返回出錯信息,拒絕向"Monster"打招呼。
    為了演示模型組件的功能,本應(yīng)用使用模型組件來保存用戶輸入的姓名。 

    運用Struts框架 

    下面把Struts框架運用到helloapp應(yīng)用中。Struts框架可以方便迅速的把一個復(fù)雜的應(yīng)用劃分成模型、視圖和控制器組件,而Struts的配置文件struts-config.xml則可以靈活的組裝這些組件,簡化開發(fā)過程。
    以下是helloapp應(yīng)用的各個模塊的構(gòu)成:
    ?模型包括一個javaBean組件PersonBean,它有一個userName屬性,代表用戶輸入的名字。它提供了get/set方法,分別用于讀取和設(shè)置userName屬性,它還提供一個save()方法,負責(zé)把userName屬性保存到持久化存儲系統(tǒng)中,如數(shù)據(jù)庫或文件系統(tǒng)。對于更為復(fù)雜的Web應(yīng)用,JavaBean組件可以作為EJB或Web服務(wù)的前端組件。
    ?視圖包括一個jsp文件hello.jsp,它提供用戶界面,接受用戶輸入的姓名。視圖還包括一個ActionForm Bean,它用來存放表單數(shù)據(jù),并進行表單驗證,假如用戶沒有輸入姓名就提交表單,將返回出錯信息。 
    ?控制器包括一個Action類HelloAction,它完成三項任務(wù):1.進行業(yè)務(wù)邏輯驗證,假如用戶輸入的姓名為"Monster", 將返回錯誤消息;2.調(diào)用模型組件PersonBean的save()方法,保存用戶輸入的名字;3.決定將合適的視圖組件返回給用戶。 

    除了創(chuàng)建模型、視圖和控制器組件,還需要創(chuàng)建Struts的配置文件struts-config.xml,它可以把這些組件組裝起來,使它們協(xié)調(diào)工作。此外,還需要創(chuàng)建整個Web應(yīng)用的配置文件web.xml。 

    創(chuàng)建JSP文件和ActionForm Bean 
    本例中,視圖包括兩個組件:
    ?一個JSP文件:hello.jsp
    ?一個ActionForm Bean: HelloForm Bean
    下面分別講述如何創(chuàng)建這兩個組件。 

    Struts框架的數(shù)據(jù)驗證功能 
    幾乎所有和用戶交互的應(yīng)用都需要數(shù)據(jù)驗證,而從頭設(shè)計并開發(fā)完善的數(shù)據(jù)驗證機制往往很費時。幸運的是,Struts框架提供了現(xiàn)成的、易于使用的數(shù)據(jù)驗證功能。 

    創(chuàng)建控制器組件:HelloAction.java 
    控制器組件包括ActionServlet類和Action類。ActionServlet類是Struts框架自帶的,它是整個Struts框架的控制樞紐,通常不需要擴展。Struts框架提供了可供擴展的Action類,它用來處理特定的HTTP請求,例程2-4為HelloAction類的源程序。 

    創(chuàng)建模型組件:PersonBean.java 
    PersonBean是一個非常簡單的JavaBean,它包括一個userName屬性,以及相關(guān)的get/set方法。此外,它還有一個業(yè)務(wù)方法saveToPersistentStore()。 

    創(chuàng)建存放常量的Java文件
    HelloAction類和視圖組件之間通過HttpServletRequest的setAttribute()和getAttribute()方法來共享request范圍內(nèi)的數(shù)據(jù)。下面再看一下HelloAction類調(diào)用HttpServletRequest的setAttribute()方法的細節(jié)。 

    創(chuàng)建Web應(yīng)用和Struts框架的配置文件 
    對于Struts應(yīng)用,它的配置文件web.xml應(yīng)該對ActionServlet類進行配置,此外,還應(yīng)該聲明Web應(yīng)用所使用的Struts標(biāo)簽庫,本例中聲明使用了三個標(biāo)簽庫: Struts Bean、Struts Html和Struts Logic標(biāo)簽庫。 

    發(fā)布和運行helloapp應(yīng)用
    helloapp應(yīng)用作為Java Web應(yīng)用,它的目錄結(jié)構(gòu)應(yīng)該符合Sun公司制定的Java Web應(yīng)用的規(guī)范,此外,由于helloapp應(yīng)用使用了Struts框架,因此應(yīng)該把Struts框架所需的JAR文件和標(biāo)簽庫描述文件TLD文件包含進來。 

    小結(jié) 

    本章通過簡單完整的helloapp應(yīng)用例子,演示了如何把Struts框架運用到Web應(yīng)用的開發(fā)中。通過這個例子,讀者可以把握以下內(nèi)容:
    ?分析應(yīng)用需求,把應(yīng)用分解為模型、視圖和控制器來實現(xiàn)這些需求。
    ?利用Struts的標(biāo)簽庫來創(chuàng)建視圖組件。視圖組件中的文本內(nèi)容保存在專門的消息資源文件中,在JSP文件中通過Struts的bean:message標(biāo)簽來訪問它,這樣可以很方便的實現(xiàn)Struts應(yīng)用的國際化,支持多國語言。
    ?Struts框架采用ActionForm Bean把視圖中的表單數(shù)據(jù)傳給控制器組件。ActionForm Bean被存放在request或session范圍內(nèi),它能夠被JSP組件、Struts標(biāo)簽以及Action類共享。
    ?數(shù)據(jù)驗證分為兩種類型:HTML表單驗證和業(yè)務(wù)邏輯驗證。表單驗證由ActionForm Bean的validate()方法來實現(xiàn)。業(yè)務(wù)邏輯驗證由Action類或模型組件來實現(xiàn)。
    ?ActionMessage可以表示數(shù)據(jù)驗證錯誤,它被保存在ActionMessages(或其子類ActionErrors)集合對象中。ActionMessages對象被保存在request范圍內(nèi),Struts的視圖組件可以通過html:errors標(biāo)簽來訪問它。
    ?Action類的execute()方法調(diào)用模型組件來完成業(yè)務(wù)邏輯,它還能決定把客戶請求轉(zhuǎn)發(fā)給哪個視圖組件。
    ?模型組件具有封裝業(yè)務(wù)實現(xiàn)細節(jié)的功能,開發(fā)者可以方便的把模型組件移植到遠程應(yīng)用服務(wù)器上,這不會對MVC的其它模塊造成影響。
    ?通過調(diào)用HttpServletRequest或HttpSession的setAttribute()以及getAttribute()方法,可以保存或訪問在request或session范圍內(nèi)的Java對象,從而實現(xiàn)視圖組件和控制器組件之間信息的交互與共享。
    ?利用struts-config.xml文件來配置Struts應(yīng)用。(T111) 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 多伦县| 恩施市| 广州市| 内丘县| 平罗县| 霞浦县| 清原| 株洲县| 望江县| 上林县| 霍林郭勒市| 新绛县| 汉中市| 昆山市| 深水埗区| 行唐县| 阿克| 陈巴尔虎旗| 崇礼县| 尉犁县| 保康县| 灵石县| 大邑县| 拜泉县| 马龙县| 龙海市| 宜兰县| 滦平县| 绥芬河市| 庄浪县| 上饶市| 忻城县| 错那县| 马边| 芷江| 岳阳市| 黑龙江省| 两当县| 高阳县| 瑞金市| 四川省|