![尚學(xué)堂Struts201ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/140d478f-8ff2-4838-92af-02aa3e5b9b81/140d478f-8ff2-4838-92af-02aa3e5b9b811.gif)
![尚學(xué)堂Struts201ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/140d478f-8ff2-4838-92af-02aa3e5b9b81/140d478f-8ff2-4838-92af-02aa3e5b9b812.gif)
![尚學(xué)堂Struts201ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/140d478f-8ff2-4838-92af-02aa3e5b9b81/140d478f-8ff2-4838-92af-02aa3e5b9b813.gif)
![尚學(xué)堂Struts201ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/140d478f-8ff2-4838-92af-02aa3e5b9b81/140d478f-8ff2-4838-92af-02aa3e5b9b814.gif)
![尚學(xué)堂Struts201ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/140d478f-8ff2-4838-92af-02aa3e5b9b81/140d478f-8ff2-4838-92af-02aa3e5b9b815.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、尚學(xué)堂 手把手教程授課:王勇授課:王勇版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+SpringStruts2第一次課:Struts2與控制器Action手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂課程目標(biāo) 框架技術(shù)概述 深入理解MVC模式 自定義MVC框架 Struts2介紹與環(huán)境搭建 我的第一個Struts2程序 Struts2再體驗 Struts2中的Action Struts2配置詳解手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂為什么要使用框架技術(shù)? 如何更快更好的寫簡歷呢? 思索:使用簡歷模板的好處
2、不用考慮布局、排版等,提高效率 可專心在簡歷的內(nèi)容上 結(jié)構(gòu)統(tǒng)一,便于人事閱讀 新手也可以做出專業(yè)的簡歷手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂什么是框架技術(shù)? “框架技術(shù)幫我們更快更好的構(gòu)建應(yīng)用程序 是一個應(yīng)用程序的半成品 提供可重用的公共結(jié)構(gòu) 按一定規(guī)則組織的一組組件 優(yōu)勢 不用考慮公共問題 專心在程序的業(yè)務(wù)實現(xiàn)上 結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、交流、維護(hù) 新手也可以寫出結(jié)構(gòu)良好的程序不用重復(fù)的去造輪子,站在巨人的肩上,享用前人的智慧。不用重復(fù)的去造輪子,站在巨人的肩上,享用前人的智慧。手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Sprin
3、g尚學(xué)堂Java Web主流框架介紹1 Struts框架1、MVC設(shè)計模式的實現(xiàn)設(shè)計模式的實現(xiàn)2、接收用戶請求,調(diào)用業(yè)務(wù)、接收用戶請求,調(diào)用業(yè)務(wù)邏輯代碼,轉(zhuǎn)發(fā)到正確頁面邏輯代碼,轉(zhuǎn)發(fā)到正確頁面3、控制器、控制器1、汲取了、汲取了Struts的優(yōu)點的優(yōu)點2、以、以WebWork為核心為核心3、攔截器、攔截器4、可變和可重用的標(biāo)簽、可變和可重用的標(biāo)簽手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Java Web主流框架介紹2 Spring和Hibernate框架1、依賴注入容器、依賴注入容器 / AOP實現(xiàn)實現(xiàn)2、聲明式事務(wù)、聲明式事務(wù)3、簡化、簡化Java E
4、E應(yīng)用應(yīng)用4、黏合劑,將大家組裝到一起、黏合劑,將大家組裝到一起1、ORM,簡化數(shù)據(jù)庫操作,簡化數(shù)據(jù)庫操作2、DAO層層手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Java Web主流框架介紹3 SSH就是就是Struts、Spring、Hibernate的框架合體簡稱的框架合體簡稱手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂從“方式談起 Model1:將業(yè)務(wù)與JSP頁面顯示融合在一起,以JSP為中心的開發(fā)模式 純JSP文件形式開發(fā) 優(yōu)點:簡單方便 缺陷:不易維護(hù)、擴(kuò)展、調(diào)試 使用JSP+JavaBean形式開發(fā) 優(yōu)點
5、:頁面相對整潔, JavaBean對業(yè)務(wù)功能進(jìn)行了封裝 ,提供了重用性,便于擴(kuò)展和調(diào)試 缺陷:JSP中仍然需要嵌 入Java代碼來實現(xiàn)業(yè)務(wù)邏輯手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂 Model2:即MVC設(shè)計模式的一個實現(xiàn),引入了Servlet作為控制器,用來處理請求、調(diào)用業(yè)務(wù)、進(jìn)行跳轉(zhuǎn)。 JSP+Servlet+JavaBean形式開發(fā) JSPView ServletController JavaBeanModel 優(yōu)點 各司其職,互不干涉 有利于分工開發(fā) 有利于組件重用 缺陷:開發(fā)復(fù)雜,適合大型應(yīng)用;不好控制,沒有一個統(tǒng)一的規(guī)則。手把手教程版權(quán)所
6、有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂自定義MVC框架1 實現(xiàn)原理:手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂自定義MVC框架2 實現(xiàn)步驟: 編寫核心控制器ControllerServlet) 截獲所有請求 從請求的URL中分析功能 分發(fā)到相應(yīng)的處理類中 根據(jù)處理結(jié)果進(jìn)行跳轉(zhuǎn) 編寫處理類 編寫處理類接口Action) String execute(request,response)方法 編寫處理類的實現(xiàn)類xxxAction手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂自定義MVC框架3 自定
7、義MVC框架的不足 分派代碼有些繁雜,每每增加業(yè)務(wù)就需要修改ControllerServlet。 Action中的execute()方法中直接引用頁面名稱作為跳轉(zhuǎn)路徑,如果頁面名稱發(fā)生改變,則需要修改代碼 自定義MVC框架的進(jìn)一步完善 使用屬性文件配置action xxx=com.sxt.action.XxxAction 從配置文件中根據(jù)請求URI得到對應(yīng)的Action,取代控制器中的ifelse InputStream is=this.getClass().getResourceAsStream(/perties); Properties prop=new Propert
8、ies(); prop.load(is); action=(Action)Class.forName(prop.getProperty(actionName).newInstance();手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2介紹 Struts2是在WebWork基礎(chǔ)上發(fā)展進(jìn)來的WEB框架,利用了Webwork的先進(jìn)的設(shè)計思想和理念,加上Struts長期聚積的名聲和人氣,合二為一,形成Struts2. 在Struts2中使用IOC和AOP最先進(jìn)的設(shè)計思想,使得控制器與容器最大程度的解耦. Struts2的兩大特色:攔截器和OGNLStr
9、uts2=WebWork的技術(shù)的技術(shù)+Struts的市場的市場手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2環(huán)境搭建jar包 使用MyEclispe直接添加Struts2支持8.5以上版本) 手工方式添加Struts2的支持 添加jar包 Struts官方地址:apache 最少jar包 修改web.xml 添加struts2配置文件:struts.xml文件名說 明struts2-core-2.1.6.jarStruts 2框架的核心類庫框架的核心類庫xwork-2.1.2.jarXWork類庫,類庫,Struts 2的構(gòu)建基礎(chǔ)的構(gòu)建基礎(chǔ)og
10、nl-2.6.11.jarStruts 2使用的一種表達(dá)式語言類庫使用的一種表達(dá)式語言類庫freemarker-2.3.13.jarStruts 2的標(biāo)簽?zāi)0迨褂妙悗斓臉?biāo)簽?zāi)0迨褂妙悗靋ommons-fileupload-1.2.1.jarStruts 2文件上傳依賴包文件上傳依賴包手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2環(huán)境搭建web.xml Struts2通過通過StrutsPrepareAndExecuteFilter過濾器來啟動過濾器來啟動,在在web.xml文件中加入如下配置文件中加入如下配置: struts2 org.apac
11、he.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 *.action 手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2環(huán)境搭建struts.xml Struts2的配置文件,的配置文件,Action必須配置在必須配置在struts.xml文件中文件中,該文件默認(rèn)放該文件默認(rèn)放在在classpathsrc下:下: 在這里配置在這里配置Action 手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂我的第一個Struts2 使用使用
12、Struts 2實現(xiàn):輸入用戶姓名,然后輸出歡迎信息實現(xiàn):輸入用戶姓名,然后輸出歡迎信息手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂我的第一個Struts2視圖JSP 開發(fā)視圖層頁面helloWorld.jsp $message 請輸入您的姓名: 手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂我的第一個Struts2控制器Action 開發(fā)HelloWorldAction public class HelloWorldAction private String name = ; / 用戶輸入的姓名private Stri
13、ng message = ; / 向用戶顯示的信息/當(dāng)Struts 2處理用戶請求時,在默認(rèn)配置下調(diào)用的方法public String execute() / 根據(jù)用戶輸入的姓名,進(jìn)展“Hello,XXXX!”的封裝this.setMessage(Hello,+this.getName()+!);return helloWorld; / 處理完畢,前往“helloWorld”/省略setter、getter方法 手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂我的第一個Struts2struts.xml 在在struts.xml中配置中配置Action hel
14、loWorld.jsp 最后部署運(yùn)行最后部署運(yùn)行手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2再體驗用戶登錄手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2再體驗開發(fā)步驟加載Struts2 類庫配置web.xml開發(fā)視圖層頁面登錄頁面login.jsp成功頁面success.jsp失敗頁面fail.jsp開發(fā)LoginAction配置Action部署、運(yùn)行項目手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2中的Action兩個重要的控制器 Strut
15、sPrepareAndExecuteFilter:核心控制器:核心控制器,負(fù)責(zé)接收所負(fù)責(zé)接收所有請求,在有請求,在struts2中使用中使用Filter實現(xiàn)。實現(xiàn)。 Action:負(fù)責(zé)處理單個特定請求,在:負(fù)責(zé)處理單個特定請求,在struts2中,中,Action組件組件不需要繼承任何類和接口,它只需要滿足以下兩個條件:不需要繼承任何類和接口,它只需要滿足以下兩個條件: 具有一個具有一個execute()方法,作為對請求信息進(jìn)行處理方法,作為對請求信息進(jìn)行處理,返回類型返回類型為為String,表示跳轉(zhuǎn)路徑的邏輯名稱。,表示跳轉(zhuǎn)路徑的邏輯名稱。 對包含的屬性參數(shù)提供對包含的屬性參數(shù)提供sett
16、er/getter方法,以便框架對屬性方法,以便框架對屬性參數(shù)進(jìn)行操作。參數(shù)進(jìn)行操作。手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2中的ActionAction接受請求參數(shù)1普通屬性+setter/getter方法也可以將所有請求參數(shù)封裝到JavaBean中如:User)public class UserAction private User user;public void setUser(User user) public User getUser() public String execute() throws ExceptionSyst
17、em.out.println(用戶名: + user.getUname() + 密碼: + user.getUpass();return null; 頁面表單方面處理與Struts1一致,即user.uname手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2中的ActionAction接受請求參數(shù)2 在Struts 2 中通過Action屬性的數(shù)據(jù)綁定降低了對request的使用需求,但是對于session、application還是有使用需求的 與Servlet API解耦的訪問方式 接受請求參數(shù): String=ActionContext.g
18、etContext().getParameters().get(uname); 獲取Session: Map session=ActionContext.getContext().getSession(); 與Servlet API耦合的訪問方式 獲取application:ServletActionContext.getServletContext() 獲取request:ServletActionContext.getRequest() 使用request再得到session手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2中的Action處理
19、多個請求的Action 方法1:在Action中定義多個與execute簽名相同的方法(方法名不同),通過下面的方式進(jìn)行訪問: action名!方法名.action 方法2:運(yùn)用*達(dá)到通配效果要求:命名一定要規(guī)范 /1.jsp 手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2配置詳解struts.xml /success.jsp/error.jsp 對于團(tuán)隊,一個項目有多人參與,應(yīng)該為每個人準(zhǔn)備一個struts配置文件,在struts.xml中使用:導(dǎo)入其他配置文件。手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)
20、堂Struts2配置詳解package元素 包的作用:簡化維護(hù)工作,提高重用性 包可以“承繼已定義的包,并可以添加自己包的配置 name屬性為必需的且唯一,用于指定包的名稱 extends屬性指定要擴(kuò)展的包 namespace屬性定義該包中action的命名空間 ,為可選屬性。用于Action模塊化管理 在package中,不能有相同名稱的action,但是不同的命名空間中允許有相同名稱的action struts-default包在struts-default.xml文件中定義 一般情況下,自己的包一定都要繼承struts-default包手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibe
21、rnate+Spring尚學(xué)堂Struts2配置詳解配置方式解決亂碼問題 constant元素元素 配置常量,可以改變配置常量,可以改變Struts 2框架的一些行為框架的一些行為 name屬性表示常量名稱,屬性表示常量名稱,value屬性表示常量值屬性表示常量值 手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2配置詳解Result配置常用類型)dispatcher類型默認(rèn)結(jié)果類型,后臺使用RequestDispatcher() 轉(zhuǎn)發(fā)請求 redirect類型 后臺使用的sendRedirect()將請求重定向至指定的URL redirectAction類型 主要用于重定向到Action chain類型主要用于請求轉(zhuǎn)發(fā)到Actionmanageerror.jsplogin.jsp手把手教程版權(quán)所有:尚學(xué)堂科技Struts+Hibernate+Spring尚學(xué)堂Struts2配置詳解Result配置動態(tài)類型)配置時不知道執(zhí)行后的結(jié)果是
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年五年級語文上冊教學(xué)總結(jié)樣本(二篇)
- 2025年個人商鋪租房合同標(biāo)準(zhǔn)版本(三篇)
- 醫(yī)藥行業(yè)物流運(yùn)輸合同范文
- 加油站裝修項目居間協(xié)議
- 城市道路監(jiān)理居間合同
- 乳制品低溫運(yùn)輸托運(yùn)協(xié)議
- 醫(yī)療器械無菌運(yùn)輸管理合同
- 海鮮冷鏈物流代理合同
- 酒泉灰色燒結(jié)磚施工方案
- 市政項目渣土清理運(yùn)輸協(xié)議
- 呆死帳的發(fā)生與預(yù)防課件
- 10000中國普通人名大全
- 導(dǎo)數(shù)常見函數(shù)圖像
- 起重機(jī)械安裝吊裝危險源辨識、風(fēng)險評價表
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國建筑項目管理表格
- 高一3班第一次月考總結(jié)班會課件
- 公共政策分析導(dǎo)論教學(xué)課件匯總完整版電子教案
- 我國油菜生產(chǎn)機(jī)械化技術(shù)(-119)
- 大跨度斜拉橋上部結(jié)構(gòu)施工技術(shù)(圖文并茂)
- 論人口模型論文計劃生育政策調(diào)整對人口數(shù)量結(jié)構(gòu)及其影響
評論
0/150
提交評論