軟件開發(fā)知識點(diǎn)_第1頁
軟件開發(fā)知識點(diǎn)_第2頁
軟件開發(fā)知識點(diǎn)_第3頁
軟件開發(fā)知識點(diǎn)_第4頁
軟件開發(fā)知識點(diǎn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

軟件開發(fā)葵花寶典:面向?qū)ο蟮奶卣鳎撼橄螅壕褪呛雎砸粋€(gè)與主題無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。包括兩個(gè)方面:過程抽象和數(shù)據(jù)抽象繼承:繼承是一種聯(lián)接類的層次模型,并且允許和鼓勵(lì)類的重用。他提供了一種描述共性的方法。封裝:就是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。多態(tài):指允許不同類的對象對同一消息作出的反應(yīng)。多態(tài)性包括參數(shù)化多態(tài)和包含多態(tài)性。string和stringbuffer的區(qū)別相同點(diǎn):可以儲(chǔ)存和操作字符串,string類提供了數(shù)值不可變的字符串,stringbuffer提供了數(shù)值可變的字符串。運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作可能遇到的異常,是常見的錯(cuò)誤。Java編譯器要求方法必須聲明拋出可能發(fā)生的異常,但是并不要求必須聲明拋出而沒有捕獲的異常。Jsp的常用命令:page,include,talib,forwod.何時(shí)調(diào)用doget和dopost.當(dāng)表單提交時(shí)method方法設(shè)置的是get就用doget。Post就用doposthttpget就調(diào)用doget()java的調(diào)試如何進(jìn)行:jdb是java的調(diào)試器。Jdb使用java調(diào)試器應(yīng)用程序接口來完成對本地或者遠(yuǎn)程的java調(diào)試器的調(diào)用工作。overload和override的區(qū)別。重寫override是父類和子類之間多態(tài)性的表現(xiàn)。如果在子類中定義某方法與父類中的方法名稱或者參數(shù)相同,則成為重寫。重載overload是一個(gè)類中多態(tài)性的表現(xiàn)。如果在一個(gè)類中定義了多個(gè)同名的方法,他們有不同的參數(shù)個(gè)數(shù)或者參數(shù)類型,則稱之為方法的重載。jsp的內(nèi)置對象及方法application表示的是javaX.servlet.serverletcontext對象查找有關(guān)servlet引擎和servlet環(huán)境的信息request表示的是httpservletrequest對象包含瀏覽器的請求response表示的是httpservletresponse對象包含設(shè)置送回瀏覽器的方法out表示的是javax.jsp.jspwirter的示例。并提供了方法使你能用瀏覽器輸出結(jié)果pagecontext表示的是javaX.servlet.jsp.pagecontext用于存取各種范圍的名字空間,selvlet相關(guān)的對象的API。包裝了通用的serlet相關(guān)功能的方法。Config表示的是javaX.servlet.serverletcontext對象該對象用于servlet實(shí)例的初始化參數(shù)。SSHSpring:是一個(gè)輕量級的框架,他的核心是控制反轉(zhuǎn)IOC和面向切面aop.IOC是指由容器中控制組件之間的關(guān)系。而并非由代碼操控。這種將控制權(quán)有程序代碼到外部容器的轉(zhuǎn)移稱為翻轉(zhuǎn)。Struts:主要是基于sunj2ee平臺的mvc框架,主要是采用severlet和jsp技術(shù)來實(shí)現(xiàn)的。M:model表示數(shù)據(jù)和業(yè)務(wù)的處理View視圖是用戶看到并與之交互的頁面Control接受用戶的輸入并調(diào)用模型和視圖去完成用戶的請求。Hibernate:是一個(gè)開放源代碼的對象關(guān)系映射框架,他對jdbc進(jìn)行了非常輕量級的對象封裝,它可以應(yīng)用在任何使用jdbc的場合。集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,利用Hibernate框架對持久層提供支持,業(yè)務(wù)層用Spring支持。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為基本的Java對象,然后編寫基本的DAO接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類來實(shí)現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后由Spring完成業(yè)務(wù)邏輯。

系統(tǒng)的基本業(yè)務(wù)流程是:在表示層中,首先通過JSp頁面實(shí)現(xiàn)交互界面,負(fù)責(zé)傳送請求(Request)和接收響應(yīng)(Response),然后Struts根據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應(yīng)的Action處理。在業(yè)務(wù)層中,管理服務(wù)組件的SpringIoC容器負(fù)責(zé)向Action提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件請求的數(shù)據(jù),并返回處理結(jié)果。

采用上述開發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動(dòng),并且數(shù)據(jù)庫的變化也不會(huì)對前端有所影響,大大提高了系統(tǒng)的可復(fù)用性。而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員并行工作,大大提高了開發(fā)效率。

編輯本段框架結(jié)構(gòu)

如右圖:

Struts對Model,View和Controller都提供了對應(yīng)的組件。

在右圖中,ActionServlet,這個(gè)類是Struts的核心控制器,負(fù)責(zé)攔截來自用戶的請求。

Action,這個(gè)類通常由用戶提供,該控制器負(fù)責(zé)接收來自ActionServlet的請求,并根據(jù)該請求調(diào)用模型的業(yè)務(wù)邏輯方法處理請求,并將處理結(jié)果返回給JSp頁面顯示。

Model部分

由ActionForm和JavaBean組成,其中ActionForm用于封裝用戶的請求參數(shù),封裝成ActionForm對象,該對象被ActionServlet轉(zhuǎn)發(fā)給Action,Action根據(jù)ActionFrom里面的請求參數(shù)處理用戶的請求。

JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫訪問等。

View部分

該部分采用JSp(或HTML、pHp……)實(shí)現(xiàn)。

Struts提供了豐富的標(biāo)簽庫,通過標(biāo)簽庫可以減少腳本的使用,自定義的標(biāo)簽庫可以實(shí)現(xiàn)與Model的有效交互,并增加了現(xiàn)實(shí)功能。對應(yīng)上圖的JSp部分。

Controller組件

Controller組件有兩個(gè)部分組成——系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。

系統(tǒng)核心控制器,對應(yīng)上圖的ActionServlet。該控制器由Struts框架提供,繼承HttpServlet類,因此可以配置成標(biāo)注的Servlet。該控制器負(fù)責(zé)攔截所有的HTTp請求,然后根據(jù)用戶請求決定是否要轉(zhuǎn)給業(yè)務(wù)邏輯控制器。

業(yè)務(wù)邏輯控制器,負(fù)責(zé)處理用戶請求,本身不具備處理能力,而是調(diào)用Model來完成處理。對應(yīng)Action部分。

Spring

Spring是一個(gè)開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。

目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性

功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能

范圍:任何Java應(yīng)用

簡單來說,Spring是一個(gè)輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOp)的容器框架。

輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。

控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對象依賴的其它對象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時(shí)不等對象請求就主動(dòng)將依賴傳遞給它。

面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點(diǎn),例如日志或事務(wù)支持。

容器——Spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。

框架——Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。

所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。

Hibernate

Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSp的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMp,完成數(shù)據(jù)持久化的重任。

Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這五個(gè)核心接口分別加以介紹。

·Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時(shí),Hibernate的session不同于JSp應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session,而以后會(huì)將HttpSession對象稱為用戶session。

·SessionFactory接口:SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。

·Configuration接口:Configuration接口負(fù)責(zé)配置并

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論