




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JavaEE項(xiàng)目應(yīng)用開發(fā)
單元1:Web應(yīng)用構(gòu)架及JavaEE軟件技術(shù)專業(yè)吳道君課程介紹課程名:《基于Struts+Sprint+Hibernae框架的項(xiàng)目開發(fā)》課程性質(zhì):一門高級Web應(yīng)用開發(fā)技術(shù)課程;先修課程:JAVA程序設(shè)計(jì)、使用JSP開發(fā)Web應(yīng)用系統(tǒng)后續(xù)課程:Android高級應(yīng)用開發(fā)(必修)目標(biāo):熟悉開源軟件環(huán)境的搭建、使用,引導(dǎo)大家走入開源技術(shù)領(lǐng)域;掌握使用Struts開發(fā)框架開發(fā)Web應(yīng)用的方法;開發(fā)基于標(biāo)準(zhǔn)架構(gòu)的、具有良好擴(kuò)展性和維護(hù)性的Web程序;課程介紹C#OOPJavaScriptT-SQLJavaOOPS2350Y2344JSP預(yù)備課程WinFormsLogicJavaS1314ASP.NETHibernateN-TierAjaxSpringStrutsHTMLC#IOSwinphone.NET畢業(yè)設(shè)計(jì)項(xiàng)目COTAndroidJava畢業(yè)設(shè)計(jì)項(xiàng)目移動(dòng)應(yīng)用畢業(yè)設(shè)計(jì)課程地位HibernateStrutsSpringHibernateStruts教學(xué)手段和方法以貫穿項(xiàng)目為基線,將知識技能點(diǎn)融入項(xiàng)目的一個(gè)個(gè)任務(wù)中以任務(wù)驅(qū)動(dòng)的教學(xué)方法以先行后知的原則安排任務(wù)必備知識的準(zhǔn)備完成任務(wù)知識提煉和要點(diǎn)提示邊講邊練:老師演示功能的具體實(shí)現(xiàn)同學(xué)們實(shí)際操作,老師給予輔導(dǎo)課程考核本課程考察的重點(diǎn):實(shí)際編程能力考核方式 項(xiàng)目考核成績構(gòu)成內(nèi)容及各自比例(百分制)平時(shí)成績。(占總成績的40%)
考核標(biāo)準(zhǔn):上課正常出勤,課后作業(yè)按時(shí)完成。項(xiàng)目成績。(占總成績的60%)最多兩個(gè)人一組需要提交項(xiàng)目設(shè)計(jì)文檔+數(shù)據(jù)庫源文件+項(xiàng)目源代碼企業(yè)對JSP的需求招聘網(wǎng)站:/職位描述:J2EE開發(fā)工程師招聘描述:Web應(yīng)用的發(fā)展12345Model1和Model2MVCStruts1Struts2Hibernate、SpringModel1Model1模式的實(shí)現(xiàn)比較簡單,適用于快速開發(fā)小規(guī)模項(xiàng)目。但從工程化的角度看,它的局限性非常明顯:JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現(xiàn)邏輯混雜在一起,從而導(dǎo)致代碼的重用性非常低,增加了應(yīng)用的擴(kuò)展性和維護(hù)的難度。Model2Model2下JSP不再承擔(dān)控制器的責(zé)任,它僅僅是表現(xiàn)層角色,僅僅用于將結(jié)果呈現(xiàn)給用戶;JSP頁面的請求與Servlet(控制器)交互,而Servlet負(fù)責(zé)與后臺的JavaBean通信。在Model2模式下,模型(Model)由JavaBean充當(dāng),視圖(View)由JSP頁面充當(dāng),而控制器(Controller)則由Servlet充當(dāng)。
什么是MVC設(shè)計(jì)模式MVC(ModelViewController)模型(model)-視圖(view)-控制器(controller)MVC模式的目的就是實(shí)現(xiàn)Web系統(tǒng)的職能分工??蚣苣J組VC模式是一種架構(gòu)模式,其實(shí)需要其他模式協(xié)作完成。在J2EE模式目錄中,通常采用servicetoworker模式實(shí)現(xiàn),而servicetoworker模式可由集中控制器模式,派遣器模式和PageHelper模式組成。(ServicetoWorker模式的目標(biāo)就是維護(hù)Action,View和Controller之間的分離。)而Struts只實(shí)現(xiàn)了MVC的View和Controller兩個(gè)部分,Model部分需要開發(fā)者自己來實(shí)現(xiàn),Struts提供了抽象類Action使開發(fā)者能將Model應(yīng)用于Struts框架中MVC之間的聯(lián)系M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。MVC之間的聯(lián)系Event(事件)導(dǎo)致Controller改變Model或View,或者同時(shí)改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會(huì)自動(dòng)更新。類似的,只要Controller改變了View,View會(huì)從潛在的Model中獲取數(shù)據(jù)來刷新自己MVC之間的聯(lián)系statequery:狀態(tài)查詢changenotification:更新通知statechange:狀態(tài)更新viewselecion:視圖選擇useractions:用戶行動(dòng)Event:事件Methodinvocations:方法調(diào)用MVC之間的聯(lián)系MVC模式的實(shí)現(xiàn)MVC與J2EE架構(gòu)的對應(yīng)關(guān)系是:View處于WebTier(Web層)或者說是ClientTier(客戶層),通常是JSP/Servlet,即頁面顯示部分。Controller也處于WebTier,通常用Servlet來實(shí)現(xiàn),即頁面顯示的邏輯部分實(shí)現(xiàn)。Model處于MiddleTier(中間層),通常用服務(wù)端的javaBean或者EJB實(shí)現(xiàn),即業(yè)務(wù)邏輯部分的實(shí)現(xiàn)。MVC的優(yōu)點(diǎn)首先,最重要的是應(yīng)該有多個(gè)視圖對應(yīng)一個(gè)模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問應(yīng)用的要求。再次,由于一個(gè)應(yīng)用被分離為三層,因此有時(shí)改變其中的一層就能滿足應(yīng)用的改變。一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需改動(dòng)MVC的模型層。控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起完成不同的請求,因此,控制層可以說是包含了用戶請求權(quán)限的概念。最后,它還有利于軟件工程化管理。由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化產(chǎn)生管理程序代碼。
MVC的缺點(diǎn)(1)增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對于簡單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過多的更新操作,降低運(yùn)行效率。(2)視圖與控制器間的過于緊密的連接。視圖與控制器是相互分離,但確實(shí)聯(lián)系緊密的部件,視圖沒有控制器的存在,其應(yīng)用是很有限的,反之亦然,這樣就妨礙了他們的獨(dú)立重用。(3)視圖對模型數(shù)據(jù)的低效率訪問。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對未變化數(shù)據(jù)的不必要的頻繁訪問,也將損害操作性能。(4)目前,一般高級的界面工具或構(gòu)造器不支持MVC模式。改造這些工具以適應(yīng)MVC需要和建立分離的部件的代價(jià)是很高的,從而造成使用MVC的困難。使用MVC的原因使用JSP和Servlet得以方便的實(shí)現(xiàn)MVC模式,如下圖,它繼承了JSP和Servlet,利用了兩種技術(shù)的優(yōu)勢,JSP負(fù)責(zé)表示層,而Servlet負(fù)責(zé)執(zhí)行調(diào)度任務(wù)。J2EE輕量級框架Struts+Spring+Hibernate整體框架和業(yè)務(wù)層用Spring,表示層用Struts,而持久層用Hibernate。
Struts1概述Struts是基于MVC的WEB應(yīng)用框架.Struts為JavaWeb應(yīng)用提供現(xiàn)成的通用框架.Struts可以提高Web開發(fā)應(yīng)用的速度,開發(fā)人員的精力集中在解決實(shí)際業(yè)務(wù)問題上.Struts實(shí)現(xiàn)MVC的原理Struts實(shí)質(zhì)上就是在JSPModel2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC框架.在Struts框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBean或EJB組件構(gòu)成,控制器由ActionServlet和Action來實(shí)現(xiàn),視圖由一組JSP文件構(gòu)成.WEB服務(wù)器瀏覽器(控制器)ActionServletstruts-config.xmlActionActionAction(視圖)JSP(模型)JavaBeanEJBActionFormBean的作用視圖組件控制器組件ActionFormBean(包含用戶輸入數(shù)據(jù))ActionFormBean(包含修改后的數(shù)據(jù))Struts的工作原理對于采用Struts框架的WEB應(yīng)用,在WEB應(yīng)用啟動(dòng)時(shí)加載并初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把他們存放到各種配置對象中,例如Action的映射信息存放在ActionMapping對象中.當(dāng)ActoinServlet受到一個(gè)客戶請求時(shí),將執(zhí)行如下流程:(1)檢索和用戶請求匹配的ActionMapping對像,如果不存在,就返回用戶請求路徑無效的信息.(2)如果ActionForm實(shí)例不存在,就創(chuàng)建一個(gè)ActionForm實(shí)例,把客戶提交的表單數(shù)據(jù)存到ActionForm實(shí)例中.(3)根據(jù)配置信息決定是否需要表單驗(yàn)證,如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法.(4)如果ActionForm的validate()方法返回一個(gè)null或返回一個(gè)不包含ActionMessage的ActionErrors對象,就表示表單驗(yàn)證成功.(5)ActionServlet根據(jù)ActionMapping實(shí)例包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個(gè)Action.如果Action實(shí)例不存在,就創(chuàng)建一個(gè)Action實(shí)例,然后調(diào)用Action的execute()方法.(6)Action的execute()方法返回一個(gè)ActionForward對象,ActionServlet再把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指向的JSP組件.(7)ActionForward對象指向的JSP組件生成動(dòng)態(tài)網(wǎng)頁,返回給客戶.其中第四步,如果ActionForm的validate()方法返回一個(gè)包含一個(gè)或多個(gè)ActionMessage的ActionErrors的對象,就表示表單驗(yàn)證失敗,此時(shí)ActionServlet將直接把請求轉(zhuǎn)發(fā)給包含用戶提交表單的JSP組件.在這種情況下,不會(huì)再創(chuàng)建Action對象并調(diào)用Action的execute()方法.請求到來ActionMapping是否匹配返回錯(cuò)誤信息不匹配
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)轉(zhuǎn)讓合同(15篇)
- 出納員年終工作總結(jié)(15篇)
- 醫(yī)務(wù)科上半年工作總結(jié)
- 2025廣東佛山南海農(nóng)商銀行金融科技總監(jiān)社會(huì)招聘模擬試卷及參考答案詳解
- 2025黑龍江黑河市愛輝區(qū)招聘公益性崗位就業(yè)人員32人模擬試卷及答案詳解(歷年真題)
- 2025國航股份西南分公司乘務(wù)員崗位高校畢業(yè)生校園招聘(四川)模擬試卷附答案詳解
- 不再犯錯(cuò)協(xié)議書7篇
- 2025廣東南粵銀行資金運(yùn)營中心招聘考前自測高頻考點(diǎn)模擬試題及答案詳解(有一套)
- 2025年黑龍江廣播電視臺(黑龍江省全媒體心)第二次公開招聘事業(yè)單位編制人員60人考前自測高頻考點(diǎn)模擬試題附答案詳解(完整版)
- 2025年多導(dǎo)生理記錄儀(8導(dǎo)以上)項(xiàng)目合作計(jì)劃書
- 人民幣國際化進(jìn)程中跨境貿(mào)易人民幣結(jié)算:現(xiàn)狀、挑戰(zhàn)與路徑探索
- 2025-2026學(xué)年九年級英語上學(xué)期第一次月考 (江蘇省連云港專用)原卷
- 2025年食品行業(yè)市場風(fēng)險(xiǎn)防范策略方案
- 2025年國有企業(yè)中層管理崗位競聘面試技巧與預(yù)測題集
- 電動(dòng)消防排煙窗施工方案
- 2025年1月浙江省高考政治真題卷含答案解析
- 宗法制度教學(xué)課件
- 2025年衛(wèi)生高級職稱面審答辯(消化內(nèi)科)在線題庫及答案(副高面審)
- 智能拐杖產(chǎn)品講解
- 2025年貴州省中考英語試卷
- 血源性傳播疾病暴露后處理
評論
0/150
提交評論