




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章框架技術(shù)概述
本章主要內(nèi)容1.1框架技術(shù)的必要性-為什么使用框架1.2框架的涵義-什么是框架及其優(yōu)點(diǎn)1.3技術(shù)、組件、框架和系統(tǒng)-區(qū)分技術(shù)、組件、框架和系統(tǒng)1.4Java流行框架-了解Struts2、Spring和Hibernate1.5三層結(jié)構(gòu)-
三層結(jié)構(gòu)如何劃分1.6
三層結(jié)構(gòu)在Java中的應(yīng)用---分層原則1.7MVC設(shè)計(jì)模式-什么是MVC,MVC的目的1.8自定義MVC框架-定義自己的框架1.9用自定義框架實(shí)現(xiàn)加法器-通過(guò)自定義框架的例子來(lái)理解框架作用1.1框架技術(shù)的必要性思考一下:使用簡(jiǎn)歷模板有哪些好處呢?使用了簡(jiǎn)歷模板后,寫簡(jiǎn)歷有如下好處:不用考慮布局、排版等問(wèn)題,提高了效率??蓪P脑诤?jiǎn)歷的內(nèi)容上,使簡(jiǎn)歷的質(zhì)量更有保障。大家的簡(jiǎn)歷都結(jié)構(gòu)統(tǒng)一,公司的人事人員閱讀簡(jiǎn)歷也會(huì)變得更方便。使用了簡(jiǎn)歷模板,新手也可以做出很專業(yè)的簡(jiǎn)歷!1.1框架技術(shù)的必要性使用預(yù)制的架構(gòu)搭建房屋有以下好處:經(jīng)濟(jì)適用,使用標(biāo)準(zhǔn)化和定制化的組件搭建,這個(gè)組件可以大規(guī)模生產(chǎn),必然便宜??焖俑咝?,工人使用都是標(biāo)準(zhǔn)的組件,經(jīng)驗(yàn)比較容易積累,勞動(dòng)效率會(huì)更高。拆卸方便,組件在設(shè)計(jì)的時(shí)候就考慮到了重復(fù)使用性和拆卸問(wèn)題。裝運(yùn)方便,標(biāo)準(zhǔn)的組件就能應(yīng)用標(biāo)準(zhǔn)的容器包裝運(yùn)輸。1.2框架的涵義1.2.1框架的涵義框架是一個(gè)應(yīng)用程序的半成品框架是成熟的,不斷升級(jí)的一組組件一個(gè)框架是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)件框架相對(duì)于組件有更強(qiáng)的可定制性強(qiáng)框架提供了可在應(yīng)用程序之間共享的可覆用的公共結(jié)構(gòu)。開(kāi)發(fā)者把框架融入他們自己的應(yīng)用程序,并加以擴(kuò)展,以滿足他們特定的需要。一方面給我們提供了可以拿來(lái)就用的工具,更大意義上,給我們提供了可重用的設(shè)計(jì)?!翱蚣堋钡囊饬x也在于此,是應(yīng)用程序的骨架。開(kāi)發(fā)者可以在這個(gè)骨架上面添加自己的東西,完成符合自己需要的應(yīng)用系統(tǒng)。從框架提供的組件中選用合適的完成你自己的系統(tǒng)。且框架使用人眾多,bug能及時(shí)反映和修正。規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實(shí)例之間協(xié)作的方法,它為組件復(fù)用提供了上下文關(guān)系。用戶所需要的就是完善一些抽象類,并且按照框架定義的方式,把這些類組合起來(lái)來(lái)構(gòu)建自己的應(yīng)用框架為組件提供重用的環(huán)境,為構(gòu)件處理錯(cuò)誤、交換數(shù)據(jù)及激活操作提供了標(biāo)準(zhǔn)的方法。應(yīng)用系統(tǒng)用途各不相同,但是每個(gè)系統(tǒng)都應(yīng)該提供一些標(biāo)準(zhǔn)的服務(wù)功能,框架往往對(duì)這些標(biāo)準(zhǔn)的服務(wù)功能提供了良好的實(shí)現(xiàn),應(yīng)用系統(tǒng)的開(kāi)發(fā)只要直接拿過(guò)來(lái)用就是1.2框架的涵義1.2.2框架的優(yōu)勢(shì)不用再考慮公共問(wèn)題,框架已經(jīng)幫我們做好了。可以專心在業(yè)務(wù)邏輯實(shí)現(xiàn)上,保證核心業(yè)務(wù)邏輯的開(kāi)發(fā)質(zhì)量。結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、維護(hù),經(jīng)驗(yàn)積累速度提高。框架中集成了前人的經(jīng)驗(yàn)和智慧,可以幫助“新手”寫出穩(wěn)健,性能優(yōu)良而且結(jié)構(gòu)優(yōu)美的高質(zhì)量程序。1.2框架的涵義1.2.3使用框架的心得一般情況下,不要嘗試去修改框架的核心代碼,應(yīng)用開(kāi)發(fā)者所需要的只是在框架的規(guī)約下,編寫自己的業(yè)務(wù)代碼,然后把這些業(yè)務(wù)代碼組合起來(lái)構(gòu)建起更個(gè)應(yīng)用系統(tǒng)。在最合適的地方插入最合適的代碼,框架定義好了約束,框架使用者要明白自己的業(yè)務(wù)代碼放在何處是最合理的,然后讓框架把業(yè)務(wù)代碼黏合起來(lái)。1.3技術(shù)、組件、框架和系統(tǒng)
1.4Java流行框架1.4.1Struts2ApacheStruts2源于WebWork2,是一個(gè)優(yōu)雅,伸縮性好的企業(yè)級(jí)Javaweb應(yīng)用開(kāi)發(fā)框架。官方網(wǎng)站:1.4Java流行框架1.4.2SpringSpring主要作為依賴注入容器和AOP實(shí)現(xiàn)存在。它還提供了聲明式事務(wù),對(duì)DAO層的支持等簡(jiǎn)化開(kāi)發(fā)的功能。Spring還可以很方便地與Struts2,hibernate等技術(shù)集成。官方網(wǎng)站:
核心容器:主要組件是BeanFactory
上下文:是一個(gè)配置文件,向Spring框架提供上下文信息AOP:面向方面的編程功能DAO:數(shù)據(jù)庫(kù)操作及數(shù)據(jù)庫(kù)異常處理ORM:ORM的對(duì)象關(guān)系工具Web上下文:建立在應(yīng)用程序上下文模塊之上MVC:容納了大量視圖技術(shù)1.4Java流行框架1.4.3HibernateHibernate是一種Java語(yǔ)言下的對(duì)象關(guān)系映射解決方案。它為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的映射,提供了一個(gè)使用方便的框架。ORM的全稱是ObjectRelationalMapping,即對(duì)象關(guān)系映射。它的實(shí)現(xiàn)思想就是將關(guān)系數(shù)據(jù)庫(kù)中表的數(shù)據(jù)映射成為對(duì)象,以對(duì)象的形式展現(xiàn),這樣開(kāi)發(fā)人員就可以把對(duì)數(shù)據(jù)庫(kù)的操作轉(zhuǎn)化為對(duì)這些對(duì)象的操作。官方網(wǎng)站:/
ORM持久層對(duì)象建立ORM持久層對(duì)象與數(shù)據(jù)庫(kù)表的對(duì)應(yīng)關(guān)系配置數(shù)據(jù)庫(kù)連接1.4Java流行框架數(shù)據(jù)庫(kù)服務(wù)器客戶端數(shù)據(jù)庫(kù)Struts業(yè)務(wù)ActionSpring與Struts2Hibernate技術(shù)集成Hibernate數(shù)據(jù)持久化操作和查詢1.5三層架構(gòu)目前開(kāi)發(fā)人員對(duì)系統(tǒng)開(kāi)發(fā)的一個(gè)共識(shí)是使用三層架構(gòu),分為表示層,業(yè)務(wù)邏輯層,和數(shù)據(jù)訪問(wèn)層。1.6三層結(jié)構(gòu)在Java中的應(yīng)用1.7MVC設(shè)計(jì)模式
1.7.1MVC含義模型(Model)
“數(shù)據(jù)模型”(Model)用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理方法。視圖(View)視圖層能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示(理論上,這不是必需的)。在視圖中一般沒(méi)有程序上的邏輯??刂破鳎–ontroller)控制器起到不同層面間的組織作用,用于控制應(yīng)用程序的流程。它處理事件并作出響應(yīng)?!笆录卑ㄓ脩舻男袨楹蛿?shù)據(jù)模型上的改變“模型”有對(duì)數(shù)據(jù)直接訪問(wèn)的權(quán)利,例如對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。“模型”不依賴“視圖”和“控制器”,也就是說(shuō),模型不關(guān)心它會(huì)被如何顯示或是如何被操作。1.7MVC設(shè)計(jì)模式
1.7.2MVC的目的將模型(業(yè)務(wù)邏輯)和視圖(頁(yè)面展示)分離。1.7MVC設(shè)計(jì)模式
1.7.3J2EE的MVCJ2EE為模型對(duì)象(ModelObjects)定義了一個(gè)規(guī)范:視圖(View)在J2EE應(yīng)用程序中,視圖(View)可能由JSP承擔(dān)。控制器(Controller)J2EE應(yīng)用中,控制器可能是一個(gè)servlet,現(xiàn)在一般用Struts實(shí)現(xiàn)。模型(Model)模型則是由一個(gè)實(shí)體Bean來(lái)實(shí)現(xiàn)。1.8自定義MVC框架
1.8.1自定義框架例程要求將所有請(qǐng)求都發(fā)送到控制器(基于Servlet實(shí)現(xiàn)),而且系統(tǒng)中只有一個(gè)控制器。使用Action表示用戶請(qǐng)求的一種操作,比如:加法和登錄??刂破鞲鶕?jù)請(qǐng)求路徑判斷找哪一個(gè)Action執(zhí)行操作。比如:如果請(qǐng)求路徑是
http://localhost:8080/sshsample/add.do則調(diào)用AddAction,如果請(qǐng)求路徑是http://localhost:8080/sshsample/login.do則調(diào)用LoginAction。Action調(diào)用模型,執(zhí)行業(yè)務(wù)操作,獲得操作結(jié)果。然后將結(jié)果返回到頁(yè)面。1.8自定義MVC框架
1.8.2自定義框架例程結(jié)構(gòu)圖1.9用自定義框架實(shí)現(xiàn)加法器Controller.javaAddAction.javaCalculator.javaadd_result.jspadd.jspweb.xml例子流程說(shuō)明圖:1.9用自定義框架實(shí)現(xiàn)加法器例子配置文件及代碼說(shuō)明:配置文件:web.xml說(shuō)明過(guò)程及作用1、add.jsp作用:接受用戶輸入2個(gè)加數(shù)2、Controller.java作用:一個(gè)Servlet控制器,根據(jù)用戶請(qǐng)求的url解析,派發(fā)用戶請(qǐng)求到恰當(dāng)?shù)腁ction處理3、AddAction.java作用:處理加法操作的Action類4、Calculator.java作用:真正做加法操作的業(yè)務(wù)對(duì)象5、add_result.jsp作用:用來(lái)顯示加法處理結(jié)果的jsp6、web.xml作用:web應(yīng)用配置文件,主要用了配置Servlet和其負(fù)責(zé)處理的url1.9用自定義框架實(shí)現(xiàn)加法器
1.9.1實(shí)現(xiàn)MVC框架實(shí)現(xiàn)控制器Controller
代碼參見(jiàn)示例11.9用自定義框架實(shí)現(xiàn)加法器
1.9.2實(shí)現(xiàn)MVC框架實(shí)現(xiàn)控制器Controller
MVC框架實(shí)現(xiàn)的核心是控制器。在處理每次請(qǐng)求時(shí)根據(jù)請(qǐng)求路徑找到將要被執(zhí)行的Action,然后調(diào)用Action的execute方法,根據(jù)execute方法返回值確定轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)到相應(yīng)的JSP頁(yè)面。完成Controller代碼后,還需要在web.xml配置。我們的控制器在配置Servlet訪問(wèn)路徑的時(shí)候可以設(shè)置為*.do,表示只要是以“.do”結(jié)束的請(qǐng)求都會(huì)派發(fā)到Controller。Action接口和Controller類構(gòu)成了自定義框架的MVC控制器部分。1.9用自定義框架實(shí)現(xiàn)加法器
web.xml配置(參見(jiàn)示例2)1.9用自定義框架實(shí)現(xiàn)加法器
1.9.3實(shí)現(xiàn)加法功能
實(shí)現(xiàn)業(yè)務(wù)邏輯類:Calculator,作為程序的“模型”部分。由AddAction實(shí)現(xiàn)Action接口,在execute方法中調(diào)用模型類方法。AddAction類是控制器的一部分。創(chuàng)建add.jsp,add_result.jsp頁(yè)面。add.jsp是輸入頁(yè)面,add_result.jsp是顯示計(jì)算結(jié)果的頁(yè)面。JSP頁(yè)面是程序的“視圖”部分。1.9用自定義框架實(shí)現(xiàn)加法器
“模型”部分:Calculator1.9用自定義框架實(shí)現(xiàn)加法器
AddAction類首先從request中獲得頁(yè)面輸入,然后調(diào)用業(yè)務(wù)方法獲得結(jié)果,再將結(jié)果保存到request對(duì)象的attribute屬性中。request.getParameter()和request.setAttribute()是Action和JSP頁(yè)面交互的主要方式。Action類是模型和視圖
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車輛抵押給個(gè)人質(zhì)押貸款合同:豪華轎車使用權(quán)協(xié)議
- 2025年度特種車輛拖車與吊裝作業(yè)服務(wù)合同
- 二零二五年度旅游居間協(xié)議合同服務(wù)項(xiàng)目解析
- 二零二五年度泳池安全知識(shí)培訓(xùn)免責(zé)協(xié)議
- 二零二五年度空調(diào)銷售與節(jié)能改造升級(jí)合同
- 二零二五年度餐飲管理公司員工培訓(xùn)與用工合同
- 高速公路排水溝施工合同(2025年度)包含臨時(shí)道路修復(fù)服務(wù)
- 2025年度銷售人員商業(yè)秘密保護(hù)及保密補(bǔ)償協(xié)議
- 二零二五年度傳媒行業(yè)勞動(dòng)合同終止及競(jìng)業(yè)限制協(xié)議范本
- 2025年度道路養(yǎng)護(hù)承包合同解除書
- SLT 478-2021 水利數(shù)據(jù)庫(kù)表結(jié)構(gòu)及標(biāo)識(shí)符編制總則
- 2024年春學(xué)期人教版小學(xué)道德與法治六年級(jí)下冊(cè)教學(xué)計(jì)劃附教學(xué)進(jìn)度表
- MIL-STD-1916抽樣計(jì)劃表(抽樣數(shù))大
- 中考數(shù)學(xué)一輪復(fù)習(xí)各章節(jié)復(fù)習(xí)有答案完美版
- 2024 年袋鼠數(shù)學(xué)競(jìng)賽 等級(jí)E(中國(guó)區(qū))
- 【《海信電器企業(yè)作業(yè)成本法下的物流成本核算分析》8500字】
- 2024年南京旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)匯編
- 馬克思主義基本原理概論400道(考點(diǎn)提分)
- 研究生調(diào)劑合同
- 2024年湖南生物機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及一套參考答案
- 2022年袋鼠數(shù)學(xué)競(jìng)賽真題一二年級(jí)組含答案
評(píng)論
0/150
提交評(píng)論