




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Struts框架實現(xiàn)企業(yè)級WEB應(yīng)用第一章Struts1基礎(chǔ)入門課程介紹學(xué)習(xí)內(nèi)容MVC MVC 優(yōu)缺點優(yōu)缺點Struts Struts 概述概述StrutsStruts入門示例入門示例使用使用MyEclipseMyEclipse快速開發(fā)快速開發(fā)StrutsStruts應(yīng)用程序應(yīng)用程序能力目標(biāo)掌握掌握Struts1Struts1體系結(jié)構(gòu)體系結(jié)構(gòu)理解理解Struts1Struts1工作原理工作原理掌握掌握Struts-config.xmlStruts-config.xml文件的配置文件的配置掌握使用掌握使用Struts1Struts1框架開發(fā)框架開發(fā)WebWeb應(yīng)用程序的方應(yīng)用程序的方法法1.
2、 MVC優(yōu)缺點JSPJSP開發(fā)技術(shù)標(biāo)準(zhǔn)提出的兩種設(shè)計模式開發(fā)技術(shù)標(biāo)準(zhǔn)提出的兩種設(shè)計模式Model1Model1:Model1Model1設(shè)計模式是設(shè)計模式是JSP+JavaBeanJSP+JavaBean的開發(fā)模式的開發(fā)模式Model2Model2:Model2Model2設(shè)計模式是設(shè)計模式是JSP+JavaBean+ServletJSP+JavaBean+Servlet的開的開發(fā)模式發(fā)模式1. MVC優(yōu)缺點Model1Model1模式模式該模式適用于小型的該模式適用于小型的WebWeb應(yīng)用程序的開發(fā)應(yīng)用程序的開發(fā) JavaBeanJavaBean通常用于處理具體的業(yè)務(wù)數(shù)據(jù)通常用于處理具體的業(yè)
3、務(wù)數(shù)據(jù)JSPJSP負(fù)責(zé)接收用戶請求,調(diào)用相應(yīng)的負(fù)責(zé)接收用戶請求,調(diào)用相應(yīng)的JavaBeanJavaBean完成業(yè)務(wù)完成業(yè)務(wù)邏輯,并將處理結(jié)果返回給用戶邏輯,并將處理結(jié)果返回給用戶客戶端數(shù)據(jù)庫請求JSP頁面JavaBean請求在在Model1Model1設(shè)計模式中,設(shè)計模式中,JSPJSP不僅需要進行程序中不僅需要進行程序中大部分的流程控制,還需要負(fù)責(zé)頁面顯示大部分的流程控制,還需要負(fù)責(zé)頁面顯示JSPJSP技術(shù)標(biāo)準(zhǔn)推出了技術(shù)標(biāo)準(zhǔn)推出了Model2Model2模式,該模式在模式,該模式在JSP+JavaBeanJSP+JavaBean的設(shè)計模式基礎(chǔ)上加入的設(shè)計模式基礎(chǔ)上加入ServletServl
4、et來來實現(xiàn)程序控制層實現(xiàn)程序控制層在在Model2Model2設(shè)計模式中,設(shè)計模式中,由由ServletServlet控制程序流程,控制程序流程,由由JavaBeanJavaBean實現(xiàn)業(yè)務(wù)邏輯,實現(xiàn)業(yè)務(wù)邏輯,由由JSPJSP負(fù)責(zé)數(shù)據(jù)顯示負(fù)責(zé)數(shù)據(jù)顯示Model2優(yōu)缺點 Model2 Model2中中MVCMVC設(shè)計模式的工作流程設(shè)計模式的工作流程執(zhí)行Servlet接收客戶端請求,并調(diào)用業(yè)務(wù)類的方法進行數(shù)據(jù)處理Servlet根據(jù)數(shù)據(jù)處理的結(jié)果,控制下一個顯示的HTML或者JSP頁面ServletJSP頁面轉(zhuǎn)向JavaBean調(diào)用Model2簡介數(shù)據(jù)庫Model2及其優(yōu)勢多個視圖可以對應(yīng)一個模型
5、。多個視圖可以對應(yīng)一個模型。按按 MVC MVC 設(shè)計模式,一個模型對應(yīng)多個視圖能夠減少代設(shè)計模式,一個模型對應(yīng)多個視圖能夠減少代碼的復(fù)制量以及維護量。一旦模型發(fā)生改變,也易于維碼的復(fù)制量以及維護量。一旦模型發(fā)生改變,也易于維護護模型返回的數(shù)據(jù)與顯示邏輯分離。模型返回的數(shù)據(jù)與顯示邏輯分離。模型數(shù)據(jù)可以應(yīng)用任何的顯示技術(shù),例如使用模型數(shù)據(jù)可以應(yīng)用任何的顯示技術(shù),例如使用JSP JSP 頁面、頁面、 Velocity Velocity 模板或者直接產(chǎn)生模板或者直接產(chǎn)生 Excel Excel 文檔等文檔等應(yīng)用程序被分隔為應(yīng)用程序被分隔為3 3層,降低了層間的耦合,提供層,降低了層間的耦合,提供了應(yīng)
6、用的可擴展性了應(yīng)用的可擴展性MVC MVC 更符合軟件的工程化管理精神。更符合軟件的工程化管理精神。不同的層各司其職,各層的組件具有相同的特征,有利不同的層各司其職,各層的組件具有相同的特征,有利于通過工程化與工具化產(chǎn)生管理程序代碼于通過工程化與工具化產(chǎn)生管理程序代碼 Model2及其缺點Model2Model2控制器太多,不能復(fù)用控制器太多,不能復(fù)用開發(fā)效率低開發(fā)效率低結(jié)構(gòu)不一致。結(jié)構(gòu)不一致。什么是框架技術(shù)“框架技術(shù)框架技術(shù)”幫我們更幫我們更快快更更好好地構(gòu)建程序:地構(gòu)建程序:是一個應(yīng)用程序的半成品是一個應(yīng)用程序的半成品提供可重用的公共結(jié)構(gòu),相當(dāng)于利用框架完成了提供可重用的公共結(jié)構(gòu),相當(dāng)于利
7、用框架完成了部分基礎(chǔ)工作,開發(fā)者只需要集中精力完成系統(tǒng)的部分基礎(chǔ)工作,開發(fā)者只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計業(yè)務(wù)邏輯設(shè)計按一定規(guī)則組織的一組組件按一定規(guī)則組織的一組組件優(yōu)勢:優(yōu)勢:不用再考慮公共問題不用再考慮公共問題專心在業(yè)務(wù)實現(xiàn)上專心在業(yè)務(wù)實現(xiàn)上結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、維護結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、維護新手也可寫出好程序新手也可寫出好程序 直接組裝汽車,不用自己造輪子直接組裝汽車,不用自己造輪子站在巨人的肩膀上,享用前人經(jīng)驗和智慧站在巨人的肩膀上,享用前人經(jīng)驗和智慧2. Struts 概述現(xiàn)今比較流行的開源框架現(xiàn)今比較流行的開源框架StrutsStruts是實現(xiàn)是實現(xiàn)MVCMVC設(shè)計模式的一個優(yōu)秀
8、框架,它定義了設(shè)計模式的一個優(yōu)秀框架,它定義了通用的控制器,通過配置文件與視圖,以通用的控制器,通過配置文件與視圖,以ActionAction的概念的概念對用戶請求進行封裝,使代碼更清晰易讀對用戶請求進行封裝,使代碼更清晰易讀HibernateHibernate是一個數(shù)據(jù)持久化框架,能夠使開發(fā)者以面是一個數(shù)據(jù)持久化框架,能夠使開發(fā)者以面向?qū)ο蟮姆绞饺ゲ僮麝P(guān)系型數(shù)據(jù)庫,極大地提高了數(shù)據(jù)向?qū)ο蟮姆绞饺ゲ僮麝P(guān)系型數(shù)據(jù)庫,極大地提高了數(shù)據(jù)層的開發(fā)效率層的開發(fā)效率SpringSpring是一個輕量級的框架,主要作為依賴注入容器是一個輕量級的框架,主要作為依賴注入容器與與AOPAOP實現(xiàn)存在。實現(xiàn)存在。S
9、pringSpring相當(dāng)于一個大型工廠,創(chuàng)建并相當(dāng)于一個大型工廠,創(chuàng)建并管理應(yīng)用程序中的組件,從而降低組件間的依賴性,實管理應(yīng)用程序中的組件,從而降低組件間的依賴性,實現(xiàn)低耦合,提高了應(yīng)用程序的可維護性、可擴展性現(xiàn)低耦合,提高了應(yīng)用程序的可維護性、可擴展性2.2 什么是Struts框架Struts Struts 是是 Apache Apache 軟件基金組織軟件基金組織 Jakarta Jakarta 項目的項目的一個子項目一個子項目 Struts Struts 的前身是的前身是 CraigR.McClanahan CraigR.McClanahan 編寫的編寫的 JSP JSP Model
10、2 Model2 架構(gòu)架構(gòu) 使用使用 Struts Struts 可以更好地遵循可以更好地遵循 MVC MVC 模式模式 Struts Struts 提供了一套完備的規(guī)范以及基礎(chǔ)類庫,具提供了一套完備的規(guī)范以及基礎(chǔ)類庫,具有很強的可擴展性,可以充分利用有很強的可擴展性,可以充分利用 JSP/Servlet JSP/Servlet 的優(yōu)點,從而減輕程序員的工作量的優(yōu)點,從而減輕程序員的工作量Struts Struts 框架在面世時立即引起了框架在面世時立即引起了 Java Java 開發(fā)者的開發(fā)者的廣泛關(guān)注,并在全世界內(nèi)推廣開來,最終成為應(yīng)用廣泛關(guān)注,并在全世界內(nèi)推廣開來,最終成為應(yīng)用最廣泛的最
11、廣泛的MVC MVC 框架框架 模型(模型(ModelModel)部分)部分Struts1Struts1的模型部分由的模型部分由JavaBeanJavaBean組成。組成。JavaBeanJavaBean封裝了封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫訪問等底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫訪問等視圖(視圖(ViewView)部分)部分Struts1Struts1的視圖部分采用的視圖部分采用 JSP JSP 實現(xiàn)實現(xiàn)ActionFormActionForm用于封裝用戶請求參數(shù),所有用戶請求參數(shù)用于封裝用戶請求參數(shù),所有用戶請求參數(shù)由系統(tǒng)自動封裝為由系統(tǒng)自動封裝為ActionFormActionForm對象。該對
12、象被對象。該對象被ActionServletActionServlet轉(zhuǎn)發(fā)給轉(zhuǎn)發(fā)給ActionAction,然后,然后ActionAction根據(jù)根據(jù)ActionFormActionForm中的請求參數(shù)處理用戶請求中的請求參數(shù)處理用戶請求 2.3 Struts1的體系結(jié)構(gòu)2.3 Struts1的體系結(jié)構(gòu)控制器(控制器(ControllerController)部分)部分系統(tǒng)核心控制器(系統(tǒng)核心控制器(ActionServletActionServlet):負(fù)責(zé)):負(fù)責(zé)攔截所有攔截所有HTTPHTTP請求,然后根據(jù)用戶請求調(diào)請求,然后根據(jù)用戶請求調(diào)用業(yè)務(wù)邏輯控制器(用業(yè)務(wù)邏輯控制器(Action
13、Action)業(yè)務(wù)邏輯控制器(業(yè)務(wù)邏輯控制器(ActionAction):業(yè)務(wù)邏輯控):業(yè)務(wù)邏輯控制器負(fù)責(zé)處理用戶請求,但是其本身并不制器負(fù)責(zé)處理用戶請求,但是其本身并不具有處理能力,而是調(diào)用具有處理能力,而是調(diào)用 Model Model 來完成處來完成處理理 2.3 Struts1的體系結(jié)構(gòu)瀏覽器Web服務(wù)器(核心控制器)ActionServlet(視圖)JSPStruts-config.xml(業(yè)務(wù)邏輯控制器)Action(業(yè)務(wù)邏輯控制器)Action(模型)JavaBeanEJBServlet/JSP容器(業(yè)務(wù)邏輯控制器)Action2.4 Struts1 運行流程ActionServl
14、etJSP頁面頁面ActionForm客戶端客戶端JavaBeanStruts-config.xmlAction1. HTTP請求2. 填充FormBean3. 轉(zhuǎn)發(fā)HTTP請求4. 調(diào)用ActionForm5. 調(diào)用JavaBean6. 回送ActionForward7. 轉(zhuǎn)發(fā)HTTP請求8. 調(diào)用JavaBean9.HTTP響應(yīng) Struts1 Struts1運行流運行流程程4. 使用MyEclipse簡化Struts開發(fā)給項目添加給項目添加StrutsStruts支持支持注意:利用MyEclipse工具向Web工程中添加Struts支持時,將自動生成struts-config.xml配置
15、文件初始架構(gòu),并自動在web.xml文件中添加ActionServlet配置信息4. 使用MyEclipse簡化Struts開發(fā)添加添加ActionFormActionForm使用Struts實現(xiàn)登錄驗證使用使用 開發(fā)開發(fā)的的4 4個步驟個步驟 給項目添加給項目添加StrutsStruts支持支持實現(xiàn)業(yè)務(wù)類實現(xiàn)業(yè)務(wù)類 添加添加StrutsStruts組件組件1 1、ActionFormActionForm2 2、ActionAction3 3、添加、添加jspjsp頁面頁面4 4、配置、配置struts-config.xmlstruts-config.xml調(diào)試運行調(diào)試運行完成的項目完成的項目
16、1234使用Struts實現(xiàn)登錄驗證給項目添加給項目添加Struts支持支持添加添加Struts支持支持后后的項目的項目增加了:增加了:Struts JAR 包包struts-config.xmlStruts標(biāo)簽庫標(biāo)簽庫修改了修改了web.xml添加添加Struts支持支持前前的項目的項目Struts是基于是基于Servlet技技術(shù)實現(xiàn)的框架術(shù)實現(xiàn)的框架Struts配置文配置文件的文件名,件的文件名,攔截所有以攔截所有以“.do”結(jié)尾的結(jié)尾的請求請求1使用Struts實現(xiàn)登錄驗證實現(xiàn)業(yè)務(wù)類(模型實現(xiàn)業(yè)務(wù)類(模型 - Model)2實現(xiàn)實現(xiàn)ActionFormActionForm使用Struts
17、實現(xiàn)登錄驗證public class LoginForm extends ActionForm private String logname;private String logpwd;。struts.action.LoginForm.java從從登陸頁面登陸頁面Form表單表單中獲取同名的中獲取同名的參數(shù)參數(shù)3使用Struts實現(xiàn)登錄驗證添加添加Struts組件組件2、Action - 編寫編寫Action代碼代碼public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest req
18、uest, HttpServletResponse response) LoginForm loginForm = (LoginForm) form;String uid=loginForm.getLogname();String pass=loginForm.getLogPwd();UserDao userDao=new UserDao();UserInfo user=userDao.login(uid, pass);if(user!=null)request.getSession().setAttribute(user, user);return mapping.findForward(s
19、uccess);return mapping.findForward(fail);struts.action.LoginAction.java從從ActionForm中即可獲中即可獲得表單提交的參數(shù)得表單提交的參數(shù)通過邏輯名引用頁面通過邏輯名引用頁面邏輯名和頁面對應(yīng)關(guān)系在邏輯名和頁面對應(yīng)關(guān)系在struts-config.xml中配置中配置3調(diào)用業(yè)務(wù)類進行調(diào)用業(yè)務(wù)類進行登錄驗證。登錄驗證。調(diào)用調(diào)用mapping.findForward()方法實現(xiàn)轉(zhuǎn)向。方法實現(xiàn)轉(zhuǎn)向。使用Struts實現(xiàn)登錄驗證添加添加Struts組件組件3. 添加添加JSP頁面頁面 根據(jù)根據(jù) Action 的的 Forwords
20、屬性屬性的設(shè)置,添加的設(shè)置,添加login.jsp和和welcome.jsp兩個頁面兩個頁面用戶名:用戶名: 密密 碼:碼: /login.jsp第一個數(shù):第一個數(shù):$requestScope.LoginForm.logname第二個數(shù):第二個數(shù):$requestScope.LoginForm.logPwd結(jié)果:結(jié)果:$requestScope.sum/welcome.jsp采用采用Struts提供的提供的html:form標(biāo)簽標(biāo)簽對應(yīng)前面對應(yīng)前面Action的的path屬性屬性對應(yīng)前面對應(yīng)前面Form的屬性名的屬性名ActionForm保存在保存在request或或session中中3使用S
21、truts實現(xiàn)登錄驗證添加添加Struts組件組件4、配置、配置struts-config.xmllogin.jspLoginAction.java3使用Struts實現(xiàn)登錄驗證調(diào)試運行調(diào)試運行3小結(jié)使用使用StrutsStruts開發(fā)加法器過程中使用了哪些開發(fā)加法器過程中使用了哪些StrutsStruts組件?組件?使用使用StrutsStruts開發(fā)步驟是什么?開發(fā)步驟是什么?1 1、添加、添加StrutsStruts支持支持2 2、開發(fā)業(yè)務(wù)邏輯類(模型,、開發(fā)業(yè)務(wù)邏輯類(模型,ModelModel)3 3、開發(fā)、開發(fā)ActionFormActionForm組件(視圖組件,組件(視圖組件,
22、ViewView)4 4、開發(fā)、開發(fā)ActionAction組件(控制組件,組件(控制組件,ControllerController)ActionForm組件組件Action組件組件小結(jié)5 5、開發(fā)、開發(fā)JSPJSP頁面頁面6 6、修改配置文件、修改配置文件struts-config.xmlstruts-config.xml,配置,配置ActionFormActionForm和和ActionAction7 7、調(diào)試運行、調(diào)試運行Struts原理StrutsStruts原理原理AddForm,ActionMapping123456開發(fā)時只需關(guān)注:開發(fā)時只需關(guān)注:兩個核心組件兩個核心組件:ActionFormAddAction一個配置文件一個配置文件1、頁面提交的數(shù)據(jù)封裝到、頁面提交的數(shù)據(jù)封裝到ActionForm中中2、通過請求路徑查找、通過請求路徑查找Struts-config.xml中中Action的配置,找的配置,找到并調(diào)用對應(yīng)的到并調(diào)用對應(yīng)的
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對學(xué)校武術(shù)教學(xué)的現(xiàn)狀和發(fā)展趨勢的探討
- 持續(xù)負(fù)壓引流技術(shù)課件
- 2025年企業(yè)可持續(xù)發(fā)展報告:SDGs目標(biāo)下的供應(yīng)鏈優(yōu)化研究
- 2025年農(nóng)業(yè)物聯(lián)網(wǎng)在農(nóng)產(chǎn)品產(chǎn)量與品質(zhì)同步提升中的應(yīng)用效果報告001
- 2025年農(nóng)業(yè)品牌建設(shè)資金申請項目品牌危機管理與應(yīng)對報告
- 2025年農(nóng)業(yè)面源污染治理與農(nóng)業(yè)廢棄物處理技術(shù)報告
- 提升學(xué)習(xí)動力教育心理學(xué)的視角與實踐
- 教育心理學(xué)與商業(yè)創(chuàng)新的關(guān)系及實踐探索
- 四川機電職業(yè)技術(shù)學(xué)院《針刀影像診斷學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南陽師范學(xué)院《茶酒大咖》2023-2024學(xué)年第二學(xué)期期末試卷
- 工資條(標(biāo)準(zhǔn)模版)
- 裝配式電纜溝施工方案
- 山東省省直機關(guān)公開遴選公務(wù)員筆試模擬真題及答案解析
- J22J262 被動式超低能耗建筑節(jié)能構(gòu)造(九)(鋼絲網(wǎng)架珍珠巖復(fù)合保溫板)DBJT02-215-2022
- 常用英語趣味習(xí)慣用語
- 新編建筑施工扣件式鋼管腳手架安全技術(shù)規(guī)范
- html5設(shè)計論文參考文獻(范例50個),參考文獻
- 俄羅斯文學(xué)導(dǎo)論智慧樹知到答案章節(jié)測試2023年黑龍江大學(xué)
- 全國各大銀行及支行聯(lián)行號查詢
- 物業(yè)工程人員服務(wù)意識培訓(xùn)
- 入庫單(標(biāo)準(zhǔn)范本)
評論
0/150
提交評論