




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章框架技術(shù)概述
本章主要內(nèi)容1.1框架技術(shù)的必要性-為什么使用框架1.2框架的涵義-什么是框架及其優(yōu)點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è)計模式-什么是MVC,MVC的目的1.8自定義MVC框架-定義自己的框架1.9用自定義框架實現(xiàn)加法器-通過自定義框架的例子來理解框架作用1.1框架技術(shù)的必要性思考一下:使用簡歷模板有哪些好處呢?使用了簡歷模板后,寫簡歷有如下好處:不用考慮布局、排版等問題,提高了效率。可專心在簡歷的內(nèi)容上,使簡歷的質(zhì)量更有保障。大家的簡歷都結(jié)構(gòu)統(tǒng)一,公司的人事人員閱讀簡歷也會變得更方便。使用了簡歷模板,新手也可以做出很專業(yè)的簡歷!1.1框架技術(shù)的必要性使用預(yù)制的架構(gòu)搭建房屋有以下好處:經(jīng)濟適用,使用標(biāo)準(zhǔn)化和定制化的組件搭建,這個組件可以大規(guī)模生產(chǎn),必然便宜。快速高效,工人使用都是標(biāo)準(zhǔn)的組件,經(jīng)驗比較容易積累,勞動效率會更高。拆卸方便,組件在設(shè)計的時候就考慮到了重復(fù)使用性和拆卸問題。裝運方便,標(biāo)準(zhǔn)的組件就能應(yīng)用標(biāo)準(zhǔn)的容器包裝運輸。1.2框架的涵義1.2.1框架的涵義框架是一個應(yīng)用程序的半成品框架是成熟的,不斷升級的一組組件一個框架是一個可復(fù)用的設(shè)計構(gòu)件框架相對于組件有更強的可定制性強框架提供了可在應(yīng)用程序之間共享的可覆用的公共結(jié)構(gòu)。開發(fā)者把框架融入他們自己的應(yīng)用程序,并加以擴展,以滿足他們特定的需要。一方面給我們提供了可以拿來就用的工具,更大意義上,給我們提供了可重用的設(shè)計?!翱蚣堋钡囊饬x也在于此,是應(yīng)用程序的骨架。開發(fā)者可以在這個骨架上面添加自己的東西,完成符合自己需要的應(yīng)用系統(tǒng)。從框架提供的組件中選用合適的完成你自己的系統(tǒng)。且框架使用人眾多,bug能及時反映和修正。規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個設(shè)計、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實例之間協(xié)作的方法,它為組件復(fù)用提供了上下文關(guān)系。用戶所需要的就是完善一些抽象類,并且按照框架定義的方式,把這些類組合起來來構(gòu)建自己的應(yīng)用框架為組件提供重用的環(huán)境,為構(gòu)件處理錯誤、交換數(shù)據(jù)及激活操作提供了標(biāo)準(zhǔn)的方法。應(yīng)用系統(tǒng)用途各不相同,但是每個系統(tǒng)都應(yīng)該提供一些標(biāo)準(zhǔn)的服務(wù)功能,框架往往對這些標(biāo)準(zhǔn)的服務(wù)功能提供了良好的實現(xiàn),應(yīng)用系統(tǒng)的開發(fā)只要直接拿過來用就是1.2框架的涵義1.2.2框架的優(yōu)勢不用再考慮公共問題,框架已經(jīng)幫我們做好了。可以專心在業(yè)務(wù)邏輯實現(xiàn)上,保證核心業(yè)務(wù)邏輯的開發(fā)質(zhì)量。結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、維護(hù),經(jīng)驗積累速度提高??蚣苤屑闪饲叭说慕?jīng)驗和智慧,可以幫助“新手”寫出穩(wěn)健,性能優(yōu)良而且結(jié)構(gòu)優(yōu)美的高質(zhì)量程序。1.2框架的涵義1.2.3使用框架的心得一般情況下,不要嘗試去修改框架的核心代碼,應(yīng)用開發(fā)者所需要的只是在框架的規(guī)約下,編寫自己的業(yè)務(wù)代碼,然后把這些業(yè)務(wù)代碼組合起來構(gòu)建起更個應(yīng)用系統(tǒng)。在最合適的地方插入最合適的代碼,框架定義好了約束,框架使用者要明白自己的業(yè)務(wù)代碼放在何處是最合理的,然后讓框架把業(yè)務(wù)代碼黏合起來。1.3技術(shù)、組件、框架和系統(tǒng)
1.4Java流行框架1.4.1Struts2ApacheStruts2源于WebWork2,是一個優(yōu)雅,伸縮性好的企業(yè)級Javaweb應(yīng)用開發(fā)框架。官方網(wǎng)站:1.4Java流行框架1.4.2SpringSpring主要作為依賴注入容器和AOP實現(xiàn)存在。它還提供了聲明式事務(wù),對DAO層的支持等簡化開發(fā)的功能。Spring還可以很方便地與Struts2,hibernate等技術(shù)集成。官方網(wǎng)站:
核心容器:主要組件是BeanFactory
上下文:是一個配置文件,向Spring框架提供上下文信息AOP:面向方面的編程功能DAO:數(shù)據(jù)庫操作及數(shù)據(jù)庫異常處理ORM:ORM的對象關(guān)系工具Web上下文:建立在應(yīng)用程序上下文模塊之上MVC:容納了大量視圖技術(shù)1.4Java流行框架1.4.3HibernateHibernate是一種Java語言下的對象關(guān)系映射解決方案。它為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。ORM的全稱是ObjectRelationalMapping,即對象關(guān)系映射。它的實現(xiàn)思想就是將關(guān)系數(shù)據(jù)庫中表的數(shù)據(jù)映射成為對象,以對象的形式展現(xiàn),這樣開發(fā)人員就可以把對數(shù)據(jù)庫的操作轉(zhuǎn)化為對這些對象的操作。官方網(wǎng)站:/
ORM持久層對象建立ORM持久層對象與數(shù)據(jù)庫表的對應(yīng)關(guān)系配置數(shù)據(jù)庫連接1.4Java流行框架數(shù)據(jù)庫服務(wù)器客戶端數(shù)據(jù)庫Struts業(yè)務(wù)ActionSpring與Struts2Hibernate技術(shù)集成Hibernate數(shù)據(jù)持久化操作和查詢1.5三層架構(gòu)目前開發(fā)人員對系統(tǒng)開發(fā)的一個共識是使用三層架構(gòu),分為表示層,業(yè)務(wù)邏輯層,和數(shù)據(jù)訪問層。1.6三層結(jié)構(gòu)在Java中的應(yīng)用1.7MVC設(shè)計模式
1.7.1MVC含義模型(Model)
“數(shù)據(jù)模型”(Model)用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法。視圖(View)視圖層能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示(理論上,這不是必需的)。在視圖中一般沒有程序上的邏輯。控制器(Controller)控制器起到不同層面間的組織作用,用于控制應(yīng)用程序的流程。它處理事件并作出響應(yīng)。“事件”包括用戶的行為和數(shù)據(jù)模型上的改變“模型”有對數(shù)據(jù)直接訪問的權(quán)利,例如對數(shù)據(jù)庫的訪問?!澳P汀辈灰蕾嚒耙晥D”和“控制器”,也就是說,模型不關(guān)心它會被如何顯示或是如何被操作。1.7MVC設(shè)計模式
1.7.2MVC的目的將模型(業(yè)務(wù)邏輯)和視圖(頁面展示)分離。1.7MVC設(shè)計模式
1.7.3J2EE的MVCJ2EE為模型對象(ModelObjects)定義了一個規(guī)范:視圖(View)在J2EE應(yīng)用程序中,視圖(View)可能由JSP承擔(dān)。控制器(Controller)J2EE應(yīng)用中,控制器可能是一個servlet,現(xiàn)在一般用Struts實現(xiàn)。模型(Model)模型則是由一個實體Bean來實現(xiàn)。1.8自定義MVC框架
1.8.1自定義框架例程要求將所有請求都發(fā)送到控制器(基于Servlet實現(xiàn)),而且系統(tǒng)中只有一個控制器。使用Action表示用戶請求的一種操作,比如:加法和登錄。控制器根據(jù)請求路徑判斷找哪一個Action執(zhí)行操作。比如:如果請求路徑是
http://localhost:8080/sshsample/add.do則調(diào)用AddAction,如果請求路徑是http://localhost:8080/sshsample/login.do則調(diào)用LoginAction。Action調(diào)用模型,執(zhí)行業(yè)務(wù)操作,獲得操作結(jié)果。然后將結(jié)果返回到頁面。1.8自定義MVC框架
1.8.2自定義框架例程結(jié)構(gòu)圖1.9用自定義框架實現(xiàn)加法器Controller.javaAddAction.javaCalculator.javaadd_result.jspadd.jspweb.xml例子流程說明圖:1.9用自定義框架實現(xiàn)加法器例子配置文件及代碼說明:配置文件:web.xml說明過程及作用1、add.jsp作用:接受用戶輸入2個加數(shù)2、Controller.java作用:一個Servlet控制器,根據(jù)用戶請求的url解析,派發(fā)用戶請求到恰當(dāng)?shù)腁ction處理3、AddAction.java作用:處理加法操作的Action類4、Calculator.java作用:真正做加法操作的業(yè)務(wù)對象5、add_result.jsp作用:用來顯示加法處理結(jié)果的jsp6、web.xml作用:web應(yīng)用配置文件,主要用了配置Servlet和其負(fù)責(zé)處理的url1.9用自定義框架實現(xiàn)加法器
1.9.1實現(xiàn)MVC框架實現(xiàn)控制器Controller
代碼參見示例11.9用自定義框架實現(xiàn)加法器
1.9.2實現(xiàn)MVC框架實現(xiàn)控制器Controller
MVC框架實現(xiàn)的核心是控制器。在處理每次請求時根據(jù)請求路徑找到將要被執(zhí)行的Action,然后調(diào)用Action的execute方法,根據(jù)execute方法返回值確定轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)到相應(yīng)的JSP頁面。完成Controller代碼后,還需要在web.xml配置。我們的控制器在配置Servlet訪問路徑的時候可以設(shè)置為*.do,表示只要是以“.do”結(jié)束的請求都會派發(fā)到Controller。Action接口和Controller類構(gòu)成了自定義框架的MVC控制器部分。1.9用自定義框架實現(xiàn)加法器
web.xml配置(參見示例2)1.9用自定義框架實現(xiàn)加法器
1.9.3實現(xiàn)加法功能
實現(xiàn)業(yè)務(wù)邏輯類:Calculator,作為程序的“模型”部分。由AddAction實現(xiàn)Action接口,在execute方法中調(diào)用模型類方法。AddAction類是控制器的一部分。創(chuàng)建add.jsp,add_result.jsp頁面。add.jsp是輸入頁面,add_result.jsp是顯示計算結(jié)果的頁面。JSP頁面是程序的“視圖”部分。1.9用自定義框架實現(xiàn)加法器
“模型”部分:Calculator1.9用自定義框架實現(xiàn)加法器
AddAction類首先從request中獲得頁面輸入,然后調(diào)用業(yè)務(wù)方法獲得結(jié)果,再將結(jié)果保存到request對象的attribute屬性中。request.getParameter()和request.setAttribute()是Action和JSP頁面交互的主要方式。Action類是模型和視圖
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社會認(rèn)知職業(yè)理論對地方公費師范生留任意愿的影響機制研究
- 民俗博物館行業(yè)跨境出海戰(zhàn)略研究報告
- 一乙胺行業(yè)跨境出海戰(zhàn)略研究報告
- 音響箱體行業(yè)直播電商戰(zhàn)略研究報告
- 節(jié)拍器企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 青年宮服務(wù)企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 架線、管道預(yù)制構(gòu)件企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 二零二五租賃養(yǎng)殖場合同范例
- 二零二五版臨時雇工勞動合同
- 食堂勞務(wù)合同范例
- 醉里乾坤大壺中日月長-初中語文九年級第六單元名著導(dǎo)讀《水滸傳》整本書閱讀精讀研討課 公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 小學(xué)綜合實踐活動《我的問卷我設(shè)計-綜合實踐方法指導(dǎo)課》課件
- DL∕T 5767-2018 電網(wǎng)技術(shù)改造工程工程量清單計價規(guī)范
- 03D201-4 10kV及以下變壓器室布置及變配電所常用設(shè)備構(gòu)件安裝
- 基于plc的步進(jìn)電機控制系統(tǒng)設(shè)計
- 衛(wèi)生統(tǒng)計學(xué)題庫+答案
- 帕金森病-課件
- MOOC 通信原理-南京郵電大學(xué) 中國大學(xué)慕課答案
- 煙道改造居民同意協(xié)議書
- 2023年《房屋建筑學(xué)》考試復(fù)習(xí)題庫大全(含答案)
- 征地拆遷培訓(xùn)班課件
評論
0/150
提交評論