版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Struts—第一章Struts2與控制器Action1目標1.1Struts2介紹與環(huán)境搭建1.2StrutsPrepareAndExecuteFilter過濾器1.3Action,ActionSupport及配置1.4Action與請求參數(shù)1.5Action控制邏輯1.6Action與ServletAPI(ActionContext,ServletActionContext)2Struts介紹Struts是一個Web框架,他以一種更加優(yōu)雅的方式來實現(xiàn)控制器,并提供如國際化,類型轉(zhuǎn)換,數(shù)據(jù)驗證,ajax等一系列的功能.Struts是在MVC架構(gòu)模式的基礎(chǔ)上構(gòu)建的一種WEB解決方案.在Struts2中使用IOC和AOP最先進的設(shè)計思想,使得控制器與容器最大程度的解耦.3Struts2介紹Struts2是在xwork基礎(chǔ)上發(fā)展進來的WEB框架,利用了xwork的先進解決方案,加上Struts長期聚積的名聲和人氣,合二為一,形成Struts2.4Struts2特點1.無需與ServletAPI整合,更容易測試2.優(yōu)雅的請求參數(shù)封裝3.靈活的視圖技術(shù)4.豐富的表達式語言5.機動,靈活,簡單的配置6.線程安全的控制器(Action)7.霸氣的插件5Struts2的體系結(jié)構(gòu)6Struts版本兩大版本1.X:出現(xiàn)最早,人氣十足,但技術(shù)落后,廉頗老矣!2.X:大量使用IOC和AOP,并支持ajax.后來居上!當(dāng)前最新版本:2.1.88環(huán)境搭建:主要的庫文件9環(huán)境搭建:復(fù)制庫文件將struts2所需要的包復(fù)制到工程的lib目錄或者創(chuàng)建一個自定義庫,方便日后使用.10環(huán)境搭建:配置DTD文件11啟動Struts2Struts2通過StrutsPrepareAndExecuteFilter過濾器來啟動,在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>12控制器Struts2有兩個重要的控制器:StrutsPrepareAndExecuteFilter:核心控制器,負責(zé)接收所有請求Action:負責(zé)處理單個特定請求Action是一個普通的類,不需要實現(xiàn)任何接口或繼承任何類.13Action的基本結(jié)構(gòu)14publicclassSimpleAction{publicStringexecute()throwsException{return"to-index";}}說明:無需實現(xiàn)任何接口或繼承任何類,但有時為了簡化某些功能必須繼承ActionSupport類execute()方法會被自動調(diào)用,該方法用于處理用戶請求,返回類型為String,是跳轉(zhuǎn)路徑的邏輯名稱.向上拋出Exception表示能夠處理所有異常.“to-index”是跳轉(zhuǎn)路徑的邏輯名稱.Action的配置—struts.xmlAction必須配置在struts.xml文件中,該文件默認放在classpath下.<struts><packagename="test"extends="struts-default"><actionname="simple"class="com.aptech.action.SimpleAction"><resultname="to-index">/index.jsp</result></action></package></struts>15struts.xml配置說明package:用于組織Action的一個邏輯概念,必須通過extends繼承自struts-default包,struts-default包在struts-default.xml文件中定義,該文件配置了很多有用的功能.action:所有的Action都必須通過action標簽配置name:訪問action邏輯名稱class:Action類的全限定名result子標簽:定義跳轉(zhuǎn)路徑,execute()方法的返回值在此定義.默認情況下為轉(zhuǎn)發(fā),如果是重定向,必須按下面的格式:<resulttype="redirect"name="xx">/xx.jsp</result>16訪問Actionsimple.action是訪問Action的實際路徑.格式:action的邏輯名稱+后綴后綴的默認名稱為:action在perties文件中可以配置后綴,如下:struts.action.extension=action 17另外可以為package指定namespace,用于Action模塊化管理在package中,不能有相同名稱的action,但是不同的命名空間中允許有相同名稱的action對于團隊,一個項目有多人參與,應(yīng)該為每個人準備一個struts配置文件,使用<includefile=“”></include>導(dǎo)入其他配置文件即可.18Action接收請求參數(shù)(1)在Action中接收請求參數(shù)不需要使用request對象,在Action中定義與請求參數(shù)相同名稱的屬性,定義setter和getter方法,struts框架會自動將請求參數(shù)解析出來并為Action屬性賦值.19Action接收請求參數(shù)(2)publicclassSimpleAction{privateStringuname;privateStringupass;publicvoidsetUname(Stringuname){};publicStringgetUname(){}publicvoidsetUpass(Stringupass){}publicStringgetUpass(){}publicStringexecute()throwsException{System.out.println("用戶名:"
+
this.uname+"密碼:"
+
this.upass);return"to-index";}}訪問:/simple.action?uname=lzh&upass=11120Action接收請求參數(shù)(3)也可以將所有請求參數(shù)封裝到j(luò)avabean中publicclassUser{privateStringuname;privateStringupass;publicStringgetUname(){}publicvoidsetUname(Stringuname){}publicStringgetUpass(){}publicvoidsetUpass(Stringupass){}}21Action接收請求參數(shù)(4)publicclassSimpleAction{privateUseruser;publicvoidsetUser(Useruser){}publicUsergetUser(){}publicStringexecute()throwsException{System.out.println("用戶名:"
+
user.getUname()+"密碼:"
+
user.getUpass());returnnull;}}22Action接收請求參數(shù)(5)還有兩中方法獲取請求參數(shù)(不推薦,但必須了解)方法1:直接通過request對象HttpServletRequestrequest=ServletActionContext.getRequest();System.out.println(request.getParameter("uname"));方法2:通過封裝的Map對象Objecto=ActionContext.getContext().getParameters().get("uname");System.out.println(((String[])o)[0]);23能處理多個請求的Action方法1:在Action中定義多個與execute簽名相同的方法(方法名不同),通過下面的方式進行訪問:action名!方法名.action方法2:使用*達到通配效果<actionname="second*"class="com.aptech.action.SecondAction"method="{
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年開發(fā)區(qū)綜合招商代理合作合同版
- 繪本故事托班課程設(shè)計
- 英語初中閱讀課課程設(shè)計
- 稅收籌劃課程設(shè)計進度
- 主治醫(yī)師資格(全科醫(yī)學(xué)301)考試題庫(全真題庫)
- 美麗小蠻腰雕刻課程設(shè)計
- 職業(yè)課程設(shè)計中的問題
- 游戲美術(shù)課程設(shè)計
- 職工培訓(xùn)課程設(shè)計
- 汽車行業(yè)維修技能培訓(xùn)總結(jié)
- 人工智能 課件 第五章 機器學(xué)習(xí)
- 2024-2025學(xué)年上學(xué)期杭州初中英語八年級期末試卷
- 【MOOC】人因工程學(xué)-東北大學(xué) 中國大學(xué)慕課MOOC答案
- 中考數(shù)學(xué)復(fù)習(xí)第二章方程(組)與不等式(組)第三節(jié)分式方程及其應(yīng)用課件
- 中國慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 水肥一體化智能種植管理技術(shù)實施方案
- 《中華人民共和國學(xué)前教育法》專題培訓(xùn)
- 《房產(chǎn)稅法》課件
- 產(chǎn)品質(zhì)量培訓(xùn)
- 海洋氣象預(yù)測研究
- 2024急性心梗護理常規(guī)
評論
0/150
提交評論