版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JavaEE項目應用開發(fā)
單元1:Web應用構架及JavaEE軟件技術專業(yè)吳道君課程介紹課程名:《基于Struts+Sprint+Hibernae框架的項目開發(fā)》課程性質:一門高級Web應用開發(fā)技術課程;先修課程:JAVA程序設計、使用JSP開發(fā)Web應用系統(tǒng)后續(xù)課程:Android高級應用開發(fā)(必修)目標:熟悉開源軟件環(huán)境的搭建、使用,引導大家走入開源技術領域;掌握使用Struts開發(fā)框架開發(fā)Web應用的方法;開發(fā)基于標準架構的、具有良好擴展性和維護性的Web程序;課程介紹C#OOPJavaScriptT-SQLJavaOOPS2350Y2344JSP預備課程WinFormsLogicJavaS1314ASP.NETHibernateN-TierAjaxSpringStrutsHTMLC#IOSwinphone.NET畢業(yè)設計項目COTAndroidJava畢業(yè)設計項目移動應用畢業(yè)設計課程地位HibernateStrutsSpringHibernateStruts教學手段和方法以貫穿項目為基線,將知識技能點融入項目的一個個任務中以任務驅動的教學方法以先行后知的原則安排任務必備知識的準備完成任務知識提煉和要點提示邊講邊練:老師演示功能的具體實現(xiàn)同學們實際操作,老師給予輔導課程考核本課程考察的重點:實際編程能力考核方式 項目考核成績構成內容及各自比例(百分制)平時成績。(占總成績的40%)
考核標準:上課正常出勤,課后作業(yè)按時完成。項目成績。(占總成績的60%)最多兩個人一組需要提交項目設計文檔+數(shù)據(jù)庫源文件+項目源代碼企業(yè)對JSP的需求招聘網(wǎng)站:/職位描述:J2EE開發(fā)工程師招聘描述:Web應用的發(fā)展12345Model1和Model2MVCStruts1Struts2Hibernate、SpringModel1Model1模式的實現(xiàn)比較簡單,適用于快速開發(fā)小規(guī)模項目。但從工程化的角度看,它的局限性非常明顯:JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現(xiàn)邏輯混雜在一起,從而導致代碼的重用性非常低,增加了應用的擴展性和維護的難度。Model2Model2下JSP不再承擔控制器的責任,它僅僅是表現(xiàn)層角色,僅僅用于將結果呈現(xiàn)給用戶;JSP頁面的請求與Servlet(控制器)交互,而Servlet負責與后臺的JavaBean通信。在Model2模式下,模型(Model)由JavaBean充當,視圖(View)由JSP頁面充當,而控制器(Controller)則由Servlet充當。
什么是MVC設計模式MVC(ModelViewController)模型(model)-視圖(view)-控制器(controller)MVC模式的目的就是實現(xiàn)Web系統(tǒng)的職能分工??蚣苣J組VC模式是一種架構模式,其實需要其他模式協(xié)作完成。在J2EE模式目錄中,通常采用servicetoworker模式實現(xiàn),而servicetoworker模式可由集中控制器模式,派遣器模式和PageHelper模式組成。(ServicetoWorker模式的目標就是維護Action,View和Controller之間的分離。)而Struts只實現(xiàn)了MVC的View和Controller兩個部分,Model部分需要開發(fā)者自己來實現(xiàn),Struts提供了抽象類Action使開發(fā)者能將Model應用于Struts框架中MVC之間的聯(lián)系M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。MVC之間的聯(lián)系Event(事件)導致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數(shù)據(jù)來刷新自己MVC之間的聯(lián)系statequery:狀態(tài)查詢changenotification:更新通知statechange:狀態(tài)更新viewselecion:視圖選擇useractions:用戶行動Event:事件Methodinvocations:方法調用MVC之間的聯(lián)系MVC模式的實現(xiàn)MVC與J2EE架構的對應關系是:View處于WebTier(Web層)或者說是ClientTier(客戶層),通常是JSP/Servlet,即頁面顯示部分。Controller也處于WebTier,通常用Servlet來實現(xiàn),即頁面顯示的邏輯部分實現(xiàn)。Model處于MiddleTier(中間層),通常用服務端的javaBean或者EJB實現(xiàn),即業(yè)務邏輯部分的實現(xiàn)。MVC的優(yōu)點首先,最重要的是應該有多個視圖對應一個模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問應用的要求。再次,由于一個應用被分離為三層,因此有時改變其中的一層就能滿足應用的改變。一個應用的業(yè)務流程或者業(yè)務規(guī)則的改變只需改動MVC的模型層??刂茖拥母拍钜埠苡行?,由于它把不同的模型和不同的視圖組合在一起完成不同的請求,因此,控制層可以說是包含了用戶請求權限的概念。最后,它還有利于軟件工程化管理。由于不同的層各司其職,每一層不同的應用具有某些相同的特征,有利于通過工程化、工具化產生管理程序代碼。
MVC的缺點(1)增加了系統(tǒng)結構和實現(xiàn)的復雜性。對于簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的復雜性,并可能產生過多的更新操作,降低運行效率。(2)視圖與控制器間的過于緊密的連接。視圖與控制器是相互分離,但確實聯(lián)系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。(3)視圖對模型數(shù)據(jù)的低效率訪問。依據(jù)模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數(shù)據(jù)。對未變化數(shù)據(jù)的不必要的頻繁訪問,也將損害操作性能。(4)目前,一般高級的界面工具或構造器不支持MVC模式。改造這些工具以適應MVC需要和建立分離的部件的代價是很高的,從而造成使用MVC的困難。使用MVC的原因使用JSP和Servlet得以方便的實現(xiàn)MVC模式,如下圖,它繼承了JSP和Servlet,利用了兩種技術的優(yōu)勢,JSP負責表示層,而Servlet負責執(zhí)行調度任務。J2EE輕量級框架Struts+Spring+Hibernate整體框架和業(yè)務層用Spring,表示層用Struts,而持久層用Hibernate。
Struts1概述Struts是基于MVC的WEB應用框架.Struts為JavaWeb應用提供現(xiàn)成的通用框架.Struts可以提高Web開發(fā)應用的速度,開發(fā)人員的精力集中在解決實際業(yè)務問題上.Struts實現(xiàn)MVC的原理Struts實質上就是在JSPModel2的基礎上實現(xiàn)的一個MVC框架.在Struts框架中,模型由實現(xiàn)業(yè)務邏輯的JavaBean或EJB組件構成,控制器由ActionServlet和Action來實現(xiàn),視圖由一組JSP文件構成.WEB服務器瀏覽器(控制器)ActionServletstruts-config.xmlActionActionAction(視圖)JSP(模型)JavaBeanEJBActionFormBean的作用視圖組件控制器組件ActionFormBean(包含用戶輸入數(shù)據(jù))ActionFormBean(包含修改后的數(shù)據(jù))Struts的工作原理對于采用Struts框架的WEB應用,在WEB應用啟動時加載并初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把他們存放到各種配置對象中,例如Action的映射信息存放在ActionMapping對象中.當ActoinServlet受到一個客戶請求時,將執(zhí)行如下流程:(1)檢索和用戶請求匹配的ActionMapping對像,如果不存在,就返回用戶請求路徑無效的信息.(2)如果ActionForm實例不存在,就創(chuàng)建一個ActionForm實例,把客戶提交的表單數(shù)據(jù)存到ActionForm實例中.(3)根據(jù)配置信息決定是否需要表單驗證,如果需要驗證,就調用ActionForm的validate()方法.(4)如果ActionForm的validate()方法返回一個null或返回一個不包含ActionMessage的ActionErrors對象,就表示表單驗證成功.(5)ActionServlet根據(jù)ActionMapping實例包含的映射信息決定將請求轉發(fā)給哪個Action.如果Action實例不存在,就創(chuàng)建一個Action實例,然后調用Action的execute()方法.(6)Action的execute()方法返回一個ActionForward對象,ActionServlet再把客戶請求轉發(fā)給ActionForward對象指向的JSP組件.(7)ActionForward對象指向的JSP組件生成動態(tài)網(wǎng)頁,返回給客戶.其中第四步,如果ActionForm的validate()方法返回一個包含一個或多個ActionMessage的ActionErrors的對象,就表示表單驗證失敗,此時ActionServlet將直接把請求轉發(fā)給包含用戶提交表單的JSP組件.在這種情況下,不會再創(chuàng)建Action對象并調用Action的execute()方法.請求到來ActionMapping是否匹配返回錯誤信息不匹配
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣安年貨運從業(yè)資格證考試從業(yè)從業(yè)資格資格題庫及答案
- 鹽化肥復習課件人教
- 《放大器的噪聲》課件
- 外科護理學的發(fā)展
- 《訴訟時效》課件
- 2025二手攪拌設備采購合同
- 2025鋼材材料供貨合同樣本
- 2024年甘肅省臨夏州中考英語真題卷及答案解析
- 家電企業(yè)總經(jīng)理協(xié)議品牌推廣
- 互聯(lián)網(wǎng)教育行業(yè)人才協(xié)議
- 電力行業(yè)用水管理制度
- 2025年1月“八省聯(lián)考”考前猜想卷數(shù)學試題01 含解析
- 《論教育》主要篇目課件
- 2022年軍隊文職統(tǒng)一考試《專業(yè)科目》管理學類-管理學試卷(含解析)
- 靜脈輸液治療的風險管理
- 江南大學《高分子化學實驗》2022-2023學年第一學期期末試卷
- 18古詩三首《書湖陰先生壁》說課稿2024-2025學年統(tǒng)編版語文六年級上冊
- 設備驗證工作年底述職報告
- 精神病藥物與藥物性肝損傷
- 醫(yī)學倫理學全套課件
- 證券投資購買(出售)授權書
評論
0/150
提交評論