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

下載本文檔

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

文檔簡(jiǎn)介

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

系統(tǒng)的基本業(yè)務(wù)流程是:在表示層中,首先通過(guò)JSp頁(yè)面實(shí)現(xiàn)交互界面,負(fù)責(zé)傳送請(qǐng)求(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é)作對(duì)象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在持久層中,則依賴(lài)于Hibernate的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理DAO組件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果。

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

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

如右圖:

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

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

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

Model部分

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

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

View部分

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

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

Controller組件

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

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

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

Spring

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

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

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

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

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

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

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

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

容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(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)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。

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

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

Hibernate

Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在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è)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五個(gè)核心接口分別加以介紹。

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論