版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Struts2初體驗(yàn)第二章回顧與作業(yè)點(diǎn)評ModelI模式開發(fā)存在哪些弊端?什么是MVC設(shè)計模式?自定義MVC框架的步驟提問2Struts2及其優(yōu)勢Struts2是一個MVC框架,以WebWork框架的設(shè)計思想為核心,吸收了Struts1的部分優(yōu)點(diǎn)Struts2擁有更加廣闊的前景,自身功能強(qiáng)大,還對其他框架下開發(fā)的程序提供很好的兼容性3Struts2的資源獲取Struts官方地址:本書選取Struts進(jìn)行講解Struts2目錄結(jié)構(gòu)apps目錄:Struts2示例應(yīng)用程序docs目錄:Struts2指南、向?qū)?、API文檔lib目錄:Struts2的發(fā)行包及其依賴包src目錄:Struts2項(xiàng)目源代碼4Struts2初體驗(yàn)7-1使用Struts2實(shí)現(xiàn):輸入用戶姓名,然后輸出歡迎信息問題5Struts2初體驗(yàn)7-2使用Struts2開發(fā)程序的基本步驟加載Struts2類庫配置web.xml文件開發(fā)視圖層頁面開發(fā)控制層Action配置struts.xml文件部署、運(yùn)行項(xiàng)目分析6Struts2初體驗(yàn)7-3Struts2類庫文件名說明struts2-core-xxx.jarStruts2框架的核心類庫xwork-core-xxx.jarXWork類庫,Struts2的構(gòu)建基礎(chǔ)ognl-xxx.jarStruts2使用的一種表達(dá)式語言類庫freemarker-xxx.jarStruts2的標(biāo)簽?zāi)0迨褂妙悗靔avassist-xxx.GA.jar對字節(jié)碼進(jìn)行處理commons-fileupload-xxx.jar文件上傳時需要使用commons-io-xxx.jarJavaIO擴(kuò)展commons-lang-xxx.jar包含了一些數(shù)據(jù)類型的工具類7Struts2初體驗(yàn)7-4配置web.xml<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter. StrutsPrepareAndExecuteFilter </filter-class></filter>
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>將全部請求定位到指定的Struts2過濾器中8Struts2初體驗(yàn)7-5編寫helloWorld.jsp… <div> <h1> <!--顯示StrutsAction中message的屬性內(nèi)容--> <s:propertyvalue="message"/> </h1> </div> <div> <formaction="helloWorld.action"method="post"> 請輸入您的姓名: <inputname="name"type="text"/> <inputtype="submit"value="提交"/> </form> </div>…輸出顯示語句9Struts2初體驗(yàn)7-6編寫HelloWorldActionpublicclassHelloWorldActionimplementsAction{ //用戶輸入的姓名 privateStringname=""; //向用戶顯示的信息 privateStringmessage=""; publicStringexecute(){ //根據(jù)用戶輸入的姓名,進(jìn)行"Hello,XXXX!"的封裝 this.setMessage("Hello,"+this.getName()+"!"); //處理完畢,返回導(dǎo)航結(jié)果的邏輯名 return"success"; } … //省略setter、getter方法}10Struts2初體驗(yàn)7-7配置Struts2配置文件(struts.xml)部署、運(yùn)行項(xiàng)目<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts> <packagename="default"namespace="/"extends="struts-default"> <actionname="helloWorld" class="cn.jbit.strutsdemo.HelloWorldAction"> <resultname="success">helloWorld.jsp</result> </action> </package></struts>與Action返回字符串對應(yīng)與form表單的action屬性值對應(yīng)演示示例1-4:第一個Struts2程序11Struts2開發(fā)小結(jié)開發(fā)Struts2應(yīng)用的基本環(huán)節(jié)確認(rèn)環(huán)境是否添加了Struts2框架支持文件是否配置了Filter功能實(shí)現(xiàn)編寫Action類配置struts.xml文件編寫視圖12Struts2再體驗(yàn)3-1如何使用Struts2實(shí)現(xiàn)用戶登錄驗(yàn)證實(shí)現(xiàn)步驟和Struts2初體驗(yàn)相同問題分析13Struts2再體驗(yàn)3-2開發(fā)控制層Action-LoginActionpublicclassLoginActionimplementsAction{ privateStringusername=""; privateStringpassword=""; publicStringexecute(){ if("jbit".equals(username)&&"bdqn".equals(password)){ return"success"; }else{ return"error"; } }} 14Struts2再體驗(yàn)3-3配置Struts2配置文件(struts.xml)<packagename="default"namespace="/"extends="struts-default"> <actionname="login"class="cn.jbit.strutsdemo.LoginAction"> <!--結(jié)果為“success”時,跳轉(zhuǎn)至success.jsp頁面--> <resultname="success">success.jsp</result> <!--結(jié)果為"error"時,跳轉(zhuǎn)至fail.jsp頁面--> <resultname="error">fail.jsp</result> </action></package>演示示例5-6:使用Struts2實(shí)現(xiàn)用戶登錄15學(xué)員操作——添加用戶登錄需求說明:為租房網(wǎng)添加Struts2框架支持使用Struts2框架實(shí)現(xiàn)用戶登錄在LoginAction中獲得用戶名及密碼并對其合法性進(jìn)行驗(yàn)證配置struts.xml文件,用戶登錄成功和失敗跳轉(zhuǎn)的頁面練習(xí)完成時間:25分鐘提示16共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解17Struts2訪問ServletAPI4-1如果登錄成功后,如何使用session保存用戶信息?Struts2訪問ServletAPI的方式與ServletAPI解耦的訪問方式與ServletAPI耦合的訪問方式問題分析18Struts2訪問ServletAPI4-2與ServletAPI解耦的訪問方式對ServletAPI進(jìn)行封裝提供了三個Map對象訪問request、session、application作用域通過ActionContext類獲取這三個Map對象Objectget("request")MapgetSession()MapgetApplication()publicclassLoginActionimplementsAction{ privatestaticfinalStringCURRENT_USER="CURRENT_USER"; …//省略username、password屬性及其setter和getter方法 publicStringexecute(){ if("jbit".equals(username)&&"bdqn".equals(password)){ Map<String,Object>session=null; session=ActionContext.getContext().getSession(); if(session.containsKey(CURRENT_USER)){ session.remove(CURRENT_USER); } session.put(CURRENT_USER,username); return"success"; }else{ return"error"; } }}以key/value形式保存數(shù)據(jù)從ActionContext中獲取session19Struts2訪問ServletAPI4-3頁面顯示<body> <h1>讀取Session中保存的用戶名</h1> <div>歡迎您,${sessionScope.CURRENT_USER}!</div></body>演示示例7-11:使用Session保存用戶名從session中讀取數(shù)據(jù)20Struts2訪問ServletAPI4-4與ServletAPI耦合的訪問方式通過ServletActionContext類獲取ServletAPI對象ServletContextgetServletContext()HttpServletResponsegetResponse()HttpServletRequestgetRequest()通過request.getSession()獲取session對象通過xxx.setAttribute()和xxx.getAttribute()功能,在不同的頁面或Action中傳遞數(shù)據(jù)publicclassLoginActionimplementsAction{ privatestaticfinalStringCURRENT_USER="CURRENT_USER"; …//省略username、password屬性及其setter和getter方法 publicStringexecute(){ if("jbit".equals(username)&&"bdqn".equals(password)){ HttpSessionsession=null; session=ServletActionContext.getRequest().getSession(); if(session.getAttribute(CURRENT_USER)!=null){ session.removeAttribute(CURRENT_USER); } session.setAttribute(CURRENT_USER,username); return"success"; }else{ return“error"; } }}以setAttribute()的方式保存數(shù)據(jù)獲取session21學(xué)員操作——session保存數(shù)據(jù)需求說明:用戶登錄成功后,使用session保存用戶信息在登錄成功后讀取用戶名顯示在LoginAction中獲得用戶名及密碼并對其合法性進(jìn)行驗(yàn)證登錄成功后以解耦的方式獲取session練習(xí)完成時間:25分鐘提示22共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解23Struts2的數(shù)據(jù)校驗(yàn)2-1對用戶登錄添加表單驗(yàn)證功能Struts2的提供了數(shù)據(jù)驗(yàn)證機(jī)制繼承ActionSupport類來完成Action開發(fā)ActionSupport類不僅對Action接口進(jìn)行簡單實(shí)現(xiàn),同時增加了驗(yàn)證、本地化等支持問題分析24Struts2的數(shù)據(jù)校驗(yàn)2-2修改LoginActionpublicclassLoginActionextendsActionSupport{//......省略代碼publicvoidvalidate(){ if(this.getUsername().length()==0){ addFieldError("name","用戶名不能為空");}if(this.getPassword().length()==0){ addFieldError("pwd","密碼不能為空");}} //......省略代碼}繼承ActionSupport驗(yàn)證出錯,指定錯誤提示信息25Struts2標(biāo)簽如何將Action的錯誤信息在頁面輸出?使用Struts2提供的標(biāo)簽來完成問題分析<%@taglibprefix="s"uri="/struts-tags"%>需要在頁面中引入Struts2的標(biāo)簽庫26Struts2表單標(biāo)簽2-1常用表單標(biāo)簽標(biāo)簽說明<s:form>…</s:form>表單標(biāo)簽<s:textfield>…</s:textfield>文本輸入框<s:password>…</s:password>密碼輸入框<s:textarea>…</s:textarea>文本域輸入框<s:radio>…</s:radio>單選按鈕<s:checkbox>…</s:checkbox>多選框<s:submit/>提交標(biāo)簽<s:reset/>重置標(biāo)簽<s:hidden/>隱藏域標(biāo)簽27Struts2表單標(biāo)簽2-2修改JSP頁面<%@taglibprefix="s"uri="/struts-tags"%>…<div> <s:fielderror/></div><s:formaction="/login.action"> <div> 用戶名:<s:textfieldname="username"/> </div> <div> 密碼:<s:passwordname="password"/> </div> <div><s:submitvalue="登錄"/></div></s:form> 顯示服務(wù)器返回的錯誤信息演示示例12-13:數(shù)據(jù)校驗(yàn)與Struts2標(biāo)簽28Struts2通用標(biāo)簽2-1使用Struts2標(biāo)簽是否可以在頁面中實(shí)現(xiàn)邏輯控制?使用Struts2的通用標(biāo)簽條件判斷標(biāo)簽迭代標(biāo)簽問題分析29Struts2通用標(biāo)簽2-2常用通用標(biāo)簽名稱標(biāo)簽說明條件標(biāo)簽<s:if>……</s:if>根據(jù)表達(dá)式的值,判斷將要執(zhí)行的內(nèi)容<s:elseif>……</s:elseif><s:else>……</s:else>迭代<s:iterator>……</s:iterator>用于遍歷集合30條件標(biāo)簽條件判斷標(biāo)簽語法<s:iftest="表達(dá)式"> 需要執(zhí)行的代碼</s:if><s:elseiftest="表達(dá)式"> 需要執(zhí)行的代碼</s:elseif><s:else> 需要執(zhí)行的代碼</s:else>表達(dá)式條件為true時,執(zhí)行相應(yīng)的代碼31
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙袋制作課件教學(xué)課件
- 防蜇課件教學(xué)課件
- 獲獎 課件教學(xué)課件
- 2024年度農(nóng)產(chǎn)品收購合同
- 2024年企業(yè)安全評價與咨詢服務(wù)合同
- 2024年度空氣能設(shè)備安裝與驗(yàn)收合同
- 2024國際快遞服務(wù)全面合作協(xié)議
- 2024樁基工程施工合同范本樁基工程施工合同
- 2024年企業(yè)合并收購協(xié)議
- 2024個人租房的合同模板范本
- (2024年)傳染病培訓(xùn)課件
- 《質(zhì)量管理體系文件》ISO9001_2015_中英文對照
- 漂流項(xiàng)目規(guī)劃設(shè)計書
- 中國花鳥畫各個時期藝術(shù)特點(diǎn)探析
- 木霉菌生防綜述
- 勞動合同廈門市人力資源和社會保障局制
- 【教案】《認(rèn)識計算機(jī)硬件設(shè)備及作用》教學(xué)設(shè)計
- 個人房屋租賃合同和押金房租收據(jù)(最新整理)
- 臥式車床電氣控制電路設(shè)計畢業(yè)設(shè)計
- 十一種不合理信念和與之相應(yīng)的合理信念
- 冪的乘方優(yōu)質(zhì)課教學(xué)設(shè)計完美版
評論
0/150
提交評論