單元1:Web應(yīng)用開(kāi)發(fā)_第1頁(yè)
單元1:Web應(yīng)用開(kāi)發(fā)_第2頁(yè)
單元1:Web應(yīng)用開(kāi)發(fā)_第3頁(yè)
單元1:Web應(yīng)用開(kāi)發(fā)_第4頁(yè)
單元1:Web應(yīng)用開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JavaEE項(xiàng)目應(yīng)用開(kāi)發(fā)

單元1:Web應(yīng)用構(gòu)架及JavaEE軟件技術(shù)專業(yè)吳道君課程介紹課程名:《基于Struts+Sprint+Hibernae框架的項(xiàng)目開(kāi)發(fā)》課程性質(zhì):一門(mén)高級(jí)Web應(yīng)用開(kāi)發(fā)技術(shù)課程;先修課程:JAVA程序設(shè)計(jì)、使用JSP開(kāi)發(fā)Web應(yīng)用系統(tǒng)后續(xù)課程:Android高級(jí)應(yīng)用開(kāi)發(fā)(必修)目標(biāo):熟悉開(kāi)源軟件環(huán)境的搭建、使用,引導(dǎo)大家走入開(kāi)源技術(shù)領(lǐng)域;掌握使用Struts開(kāi)發(fā)框架開(kāi)發(fā)Web應(yīng)用的方法;開(kāi)發(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)目為基線,將知識(shí)技能點(diǎn)融入項(xiàng)目的一個(gè)個(gè)任務(wù)中以任務(wù)驅(qū)動(dòng)的教學(xué)方法以先行后知的原則安排任務(wù)必備知識(shí)的準(zhǔn)備完成任務(wù)知識(shí)提煉和要點(diǎn)提示邊講邊練:老師演示功能的具體實(shí)現(xiàn)同學(xué)們實(shí)際操作,老師給予輔導(dǎo)課程考核本課程考察的重點(diǎn):實(shí)際編程能力考核方式 項(xiàng)目考核成績(jī)構(gòu)成內(nèi)容及各自比例(百分制)平時(shí)成績(jī)。(占總成績(jī)的40%)

考核標(biāo)準(zhǔn):上課正常出勤,課后作業(yè)按時(shí)完成。項(xiàng)目成績(jī)。(占總成績(jī)的60%)最多兩個(gè)人一組需要提交項(xiàng)目設(shè)計(jì)文檔+數(shù)據(jù)庫(kù)源文件+項(xiàng)目源代碼企業(yè)對(duì)JSP的需求招聘網(wǎng)站:/職位描述:J2EE開(kāi)發(fā)工程師招聘描述:Web應(yīng)用的發(fā)展12345Model1和Model2MVCStruts1Struts2Hibernate、SpringModel1Model1模式的實(shí)現(xiàn)比較簡(jiǎn)單,適用于快速開(kāi)發(fā)小規(guī)模項(xiàng)目。但從工程化的角度看,它的局限性非常明顯:JSP頁(yè)面身兼View和Controller兩種角色,將控制邏輯和表現(xiàn)邏輯混雜在一起,從而導(dǎo)致代碼的重用性非常低,增加了應(yīng)用的擴(kuò)展性和維護(hù)的難度。Model2Model2下JSP不再承擔(dān)控制器的責(zé)任,它僅僅是表現(xiàn)層角色,僅僅用于將結(jié)果呈現(xiàn)給用戶;JSP頁(yè)面的請(qǐng)求與Servlet(控制器)交互,而Servlet負(fù)責(zé)與后臺(tái)的JavaBean通信。在Model2模式下,模型(Model)由JavaBean充當(dāng),視圖(View)由JSP頁(yè)面充當(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部分需要開(kāi)發(fā)者自己來(lái)實(shí)現(xiàn),Struts提供了抽象類Action使開(kāi)發(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ù)你可以分別用柱狀圖、餅圖來(lái)表示。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ù)來(lái)刷新自己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)的對(duì)應(yīng)關(guān)系是:View處于WebTier(Web層)或者說(shuō)是ClientTier(客戶層),通常是JSP/Servlet,即頁(yè)面顯示部分。Controller也處于WebTier,通常用Servlet來(lái)實(shí)現(xiàn),即頁(yè)面顯示的邏輯部分實(shí)現(xiàn)。Model處于MiddleTier(中間層),通常用服務(wù)端的javaBean或者EJB實(shí)現(xiàn),即業(yè)務(wù)邏輯部分的實(shí)現(xiàn)。MVC的優(yōu)點(diǎn)首先,最重要的是應(yīng)該有多個(gè)視圖對(duì)應(yīng)一個(gè)模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問(wèn)應(yīng)用的要求。再次,由于一個(gè)應(yīng)用被分離為三層,因此有時(shí)改變其中的一層就能滿足應(yīng)用的改變。一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需改動(dòng)MVC的模型層??刂茖拥母拍钜埠苡行?,由于它把不同的模型和不同的視圖組合在一起完成不同的請(qǐng)求,因此,控制層可以說(shuō)是包含了用戶請(qǐng)求權(quán)限的概念。最后,它還有利于軟件工程化管理。由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過(guò)工程化、工具化產(chǎn)生管理程序代碼。

MVC的缺點(diǎn)(1)增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對(duì)于簡(jiǎn)單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過(guò)多的更新操作,降低運(yùn)行效率。(2)視圖與控制器間的過(guò)于緊密的連接。視圖與控制器是相互分離,但確實(shí)聯(lián)系緊密的部件,視圖沒(méi)有控制器的存在,其應(yīng)用是很有限的,反之亦然,這樣就妨礙了他們的獨(dú)立重用。(3)視圖對(duì)模型數(shù)據(jù)的低效率訪問(wèn)。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對(duì)未變化數(shù)據(jù)的不必要的頻繁訪問(wèn),也將損害操作性能。(4)目前,一般高級(jí)的界面工具或構(gòu)造器不支持MVC模式。改造這些工具以適應(yīng)MVC需要和建立分離的部件的代價(jià)是很高的,從而造成使用MVC的困難。使用MVC的原因使用JSP和Servlet得以方便的實(shí)現(xiàn)MVC模式,如下圖,它繼承了JSP和Servlet,利用了兩種技術(shù)的優(yōu)勢(shì),JSP負(fù)責(zé)表示層,而Servlet負(fù)責(zé)執(zhí)行調(diào)度任務(wù)。J2EE輕量級(jí)框架Struts+Spring+Hibernate整體框架和業(yè)務(wù)層用Spring,表示層用Struts,而持久層用Hibernate。

Struts1概述Struts是基于MVC的WEB應(yīng)用框架.Struts為JavaWeb應(yīng)用提供現(xiàn)成的通用框架.Struts可以提高Web開(kāi)發(fā)應(yīng)用的速度,開(kāi)發(fā)人員的精力集中在解決實(shí)際業(yè)務(wù)問(wèn)題上.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來(lái)實(shí)現(xiàn),視圖由一組JSP文件構(gòu)成.WEB服務(wù)器瀏覽器(控制器)ActionServletstruts-config.xmlActionActionAction(視圖)JSP(模型)JavaBeanEJBActionFormBean的作用視圖組件控制器組件ActionFormBean(包含用戶輸入數(shù)據(jù))ActionFormBean(包含修改后的數(shù)據(jù))Struts的工作原理對(duì)于采用Struts框架的WEB應(yīng)用,在WEB應(yīng)用啟動(dòng)時(shí)加載并初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把他們存放到各種配置對(duì)象中,例如Action的映射信息存放在ActionMapping對(duì)象中.當(dāng)ActoinServlet受到一個(gè)客戶請(qǐng)求時(shí),將執(zhí)行如下流程:(1)檢索和用戶請(qǐng)求匹配的ActionMapping對(duì)像,如果不存在,就返回用戶請(qǐng)求路徑無(wú)效的信息.(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對(duì)象,就表示表單驗(yàn)證成功.(5)ActionServlet根據(jù)ActionMapping實(shí)例包含的映射信息決定將請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)Action.如果Action實(shí)例不存在,就創(chuàng)建一個(gè)Action實(shí)例,然后調(diào)用Action的execute()方法.(6)Action的execute()方法返回一個(gè)ActionForward對(duì)象,ActionServlet再把客戶請(qǐng)求轉(zhuǎn)發(fā)給ActionForward對(duì)象指向的JSP組件.(7)ActionForward對(duì)象指向的JSP組件生成動(dòng)態(tài)網(wǎng)頁(yè),返回給客戶.其中第四步,如果ActionForm的validate()方法返回一個(gè)包含一個(gè)或多個(gè)ActionMessage的ActionErrors的對(duì)象,就表示表單驗(yàn)證失敗,此時(shí)ActionServlet將直接把請(qǐng)求轉(zhuǎn)發(fā)給包含用戶提交表單的JSP組件.在這種情況下,不會(huì)再創(chuàng)建Action對(duì)象并調(diào)用Action的execute()方法.請(qǐng)求到來(lái)ActionMapping是否匹配返回錯(cuò)誤信息不匹配

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論