下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、Struts 在項目中的作用a)b)Struts 在項目主要起控制作用,只要用于 web 層(即視圖層和控制層)Struts 本身是使型的 MVC 結(jié)構(gòu)實現(xiàn)的,項目中使用了 struts 之后就等于項目也是一個 MVC 結(jié)構(gòu),使項目結(jié)構(gòu)更清晰,分工更明細。Struts 在項目中主要負責(zé)視圖層、控制層,在視圖層提供了大量的c)庫,提高視圖層的開發(fā)速度。在控制層使用 控制器(Actionsupport)和配置文件(struts.xml),實現(xiàn) 用戶請求、封裝請求參數(shù)及頁面導(dǎo)航。優(yōu)點:實現(xiàn) MVC 模式,結(jié)構(gòu)清晰,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯的實現(xiàn).有豐富的 tag 可以用 ,Struts 的標(biāo)記庫(
2、Taglib),如能靈活動用,則能大大提高開發(fā)效率。另外,就目前國內(nèi)的 JSP 開發(fā)者而言,除了使用 JSP 自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許 Struts 是一個很好的起點。頁面導(dǎo)航.頁面導(dǎo)航將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著4.5.6.的好處。尤其是當(dāng)另一批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。提供 Exception 處理機制 .數(shù)據(jù)庫池管理支持 I18Ne)缺點:1、 轉(zhuǎn)到展示層時,需要配置 forward,每一次轉(zhuǎn)到展示層,相信大多數(shù)都是直接轉(zhuǎn)到 jsp,而涉及到轉(zhuǎn)向
3、,需要配置 forward,如果有十個展示層的 jsp,需要配置十次 struts,而且還不包括有時候目錄、文件變更,需要重新修改 forward,注意,每次修改配置之后,要求重新部署整個項目,而 tomcate 這樣的服務(wù)器,還必須重新啟動服務(wù)器,如果業(yè)務(wù)變更復(fù)雜頻繁的系統(tǒng),這樣的操作簡單不可想象。現(xiàn)在就是這樣,幾十上百個人同時使用的系統(tǒng),大家可以想象一下,煩惱有多大。2、 Struts 的 Action 必需是 threadsafe 方式,它僅僅允許一個實例去處理所有的請求。所以 action 用到的所有的資源都必需同步,這個就引起了線程安全。3、 測試不方便. Struts 的每個 Ac
4、tion 都同 Web 層耦合在一起,這樣它的測試依賴于 Web 容器,單元測試也很難實現(xiàn)。不過有一個 Junit 的擴展工具 Struts TestCase 可以實現(xiàn)它的單元測試。4、 類型的轉(zhuǎn)換. Struts 的 FormBean 把所有的數(shù)據(jù)都作為 String 類型,它可以使用工具 Commons-Beanutils 進行類型轉(zhuǎn)化。但它的轉(zhuǎn)化都是在 Class 級別,而且轉(zhuǎn)化的類型是不可配置的。類型轉(zhuǎn)化時的錯誤信息返回給用戶也是非常的。5、 對 Servlet 的依賴性過強. Struts 處理 Action 時必需要依賴 ServletRequest 和ServletRespons
5、e,所有它擺脫不了 Servlet 容器。6、 前端表達式語言方面.Struts 集成了 JSTL,所以它主要使用 JSTL 的表達式語言來獲取數(shù)據(jù)。JSTL 的表達式語言在 Collection 和索引屬性方面處理顯得很弱。7、 對 Action 執(zhí)行的控制. Struts 創(chuàng)建一個 Action,如果想控制它的執(zhí)行順序?qū)浅!I踔聊阋匦氯?Servlet 來實現(xiàn)你的這個功能需求。8、 對 Action 執(zhí)行前和后的處理. Struts 處理 Action 的時候是基于 class 的hierarchies,很難在 action 處理前和后進行操作。9、 對事件支持不夠. 在 stru
6、ts 中,實際是一個表單 Form 對應(yīng)一個 Action 類(或DispatchAction),換一句話說:在 Struts 中實際是一個表單只能對應(yīng)一個事件,struts 這種事件方式稱為 application event,application event 和 component event 相比是一種粗粒度的事件。二、Spring 在項目中的作用a)Spring 是一個全方位的整合框架,在項目中對 hibernate 和 struts 進行整合,解決層與層之間的耦合問題。b)c)Spring 的作用貫穿了整個中間層,將 Web 層、Service 層、層及 PO 無縫整合。Sprin
7、g 的 IoC 來實現(xiàn)組件之間的依賴關(guān)系注入,上層框架不會滲透到下層組件,提高組件移植性和重用性,使得程序更靈活,上層框架不依賴實現(xiàn)而是依賴于抽象(委托接口)、使得實現(xiàn)類的變化不會影響上層組件,解決了層與層之間的藕合帶來的或升級d)SprinP 是面向切面編程,實現(xiàn)事務(wù)處理、日志服務(wù)等與業(yè)務(wù)無關(guān)的系統(tǒng)服務(wù),實現(xiàn)插件式編程。e)優(yōu)點它是一個開源的項目,而且目前非?;钴S;它基于IoC(Inverof Control,控制反轉(zhuǎn))和 AOP(面向切面)的構(gòu)架多層j2ee 系統(tǒng)的框架,但它不強迫你必須在每一層中必須使用Spring,因為它模塊化的很好,允許你根據(jù)自己的需要選擇使用它的某一個模塊;它實現(xiàn)了
8、很優(yōu)雅的 MVC,對不同的數(shù)據(jù)技術(shù)提供了的接口,采用 IoC 使得可以很容易的實現(xiàn) bean 的裝配,提供了簡潔的 AOP 并據(jù)此實現(xiàn)TranscationManagment,等等a. Spring 能有效地組織你的中間層對象,不管你是否選擇使用了 EJB。如果你僅僅使用了 Struts 或其他為J2EE 的 API 特制的framework,Spring 致力于解決剩下。b. Spring 能消除在許多工程中常見的對Singleton 的過多使用。根據(jù)經(jīng)驗,這是一個很大,它降低了系統(tǒng)的可測試性和面象的程度。c. 通過一種在不同應(yīng)用程序和項目間一致的方法來處理配置文件,Spring 能消除各種
9、各樣自定義格式的屬性文件的需要。曾經(jīng)對某個類要尋找的是哪個魔法般的屬性項或系統(tǒng)屬Javadoc 甚至源編碼?有了Spring,你僅僅需要看看類的JavaBean 屬性。Inver到不解,為此不得不去讀of Control 的使用(在下面)幫助完成了這種簡化。d. 通過把對接口編程而不是對類編程的代價幾乎減少到?jīng)]有,Spring 能夠促進養(yǎng)成好的編程。e. Spring 被設(shè)計為讓使用它創(chuàng)建的應(yīng)用盡可能少的依賴于他的 APIs。在 Spring 應(yīng)用中的大多數(shù)業(yè)務(wù)對象沒有依賴于Spring。f. 使用Spring 構(gòu)建的應(yīng)用程序易于單元測試。g. Spring 能使EJB 的使用成為一個實現(xiàn)選擇
10、,而不是應(yīng)用架構(gòu)的必然選擇。你能選擇用POJOs 或local EJBs來實現(xiàn)業(yè)務(wù)接口,卻不會影響調(diào)用代碼。h. Spring 幫助你解決許多問題而無需使用EJB。Spring 能提供一種EJB 的替換物,它們適用于許多web 應(yīng)用。例如,Spring 能使用AOP 提供道,甚至不需要一個JTA 實現(xiàn)。性事務(wù)管理而不通過EJB 容器,如果你僅僅需要與單個數(shù)據(jù)庫打交i. Spring 為數(shù)據(jù)存取提供了一個一致的框架,不論是使用的是JDBC 還是 O/R map產(chǎn)品Spring 確實使你能通過最簡單可行的解決辦法來解決你。而這是有有很大價值的。f)缺點jsp 中要寫很多代碼、控制器過于靈活,缺少一
11、個公用控制器。三、Hibernate 在項目中的作用a)Hibernate 應(yīng)用于數(shù)據(jù)持久化層,是對 JDBC 的輕量級封裝。是一種對象、關(guān)系的工具, 提供了從 Java 類到數(shù)據(jù)表的,也提供了數(shù)據(jù)查詢和恢復(fù)等機制,的復(fù)雜度。把對數(shù)據(jù)庫的直接操作 , 轉(zhuǎn)換為對持久對象的操作。大大減少數(shù)據(jù)b)在項目中的主要作用就是 1、解決程序與數(shù)據(jù)庫的依賴,即使用了 Hibernate 之后,以后更改數(shù)據(jù)庫不需要更改代碼,因為 Hibernate 會根據(jù)數(shù)據(jù)庫方言來生成對應(yīng)的SQL 語句;2、是對 JDBC 的輕量級封裝,簡化持久層的代碼,提高開發(fā)速度。c)優(yōu)點Hibernate 是一個開放源代碼的對象關(guān)系框
12、架,它對JDBC 進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來數(shù)據(jù)庫。Hibernate 可以應(yīng)用在任何使用JDBC 的場合,既可以在Java 的客戶端程序使用,也可以在Servlet/JSP的Web 應(yīng)用中使用,最具據(jù)持久化的重任。意義的是,Hibernate 可以在應(yīng)用EJB 的J2EE 架構(gòu)中取代CMP,完成數(shù)大多數(shù)開發(fā)機構(gòu)經(jīng)常采取創(chuàng)建各自獨立的數(shù)據(jù)持久層。一旦底層的數(shù)據(jù)結(jié)構(gòu)發(fā)生改變,那么修改應(yīng)用的其余部分使之適應(yīng)這種改變的代價將是十分巨大的。Hibernate 適時的填補了這一空白,它為 Java 應(yīng)用提供了一個易用的、高效率的對象關(guān)系框架。hibernate 是個輕量級的持久性框架,功能卻非常豐富。1. Hibernate 使用 Java 反射機制而不是字節(jié)碼增強程序來實現(xiàn)透明性。2. Hibernate 的性能非常好,因為它是個輕量級框架。的靈活性很出色。3. 它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系d)缺點1、由于 Hibernate 實現(xiàn)了復(fù)雜的關(guān)系靈活。,并且進行大量的封裝,所以對于復(fù)雜的查詢語句不是很2、它限制您所使用的對象模型。(例如,一個持久性類不能到多個表),盡管如此,Hibernate 還是以其強大的發(fā)展動力減輕了這些風(fēng)險。其他的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東濟南商河縣衛(wèi)生事業(yè)單位招聘工作人員143人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東德州市陵城區(qū)事業(yè)單位招聘工作人員32人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東衛(wèi)生廳事業(yè)單位招聘51名工作人員歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東臨沂荀子研究院引進急需緊缺專業(yè)人才3人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東東城環(huán)衛(wèi)集團招聘工作人員8人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年宣城經(jīng)濟技術(shù)開發(fā)區(qū)管理委員會公開招聘高級工程造價主管1人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年寶雞市太白縣交通水利住建局招聘專業(yè)技術(shù)人員歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年宜昌市招商局招聘10人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年安陽市滑縣鄉(xiāng)鎮(zhèn)事業(yè)單位招考管理單位筆試遴選500模擬題附帶答案詳解
- 2025年安徽黃山市屯溪區(qū)事業(yè)單位公開招聘工作人員27人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 鄧州市龍理鄉(xiāng)第一初級中學(xué)-2025年春節(jié)寒假跨學(xué)科主題實踐作業(yè)模板【課件】
- 酒店宴會服務(wù)合同三篇
- 高一數(shù)學(xué)上學(xué)期期末模擬試卷03-【中職專用】2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期(高教版2023基礎(chǔ)模塊)(解析版)
- 2024年社區(qū)工作者考試必考1000題【歷年真題】
- 公司安全事故隱患內(nèi)部舉報、報告獎勵制度
- 2024年WPS計算機二級考試題庫350題(含答案)
- 冬季傳染病預(yù)防-(課件)-小學(xué)主題班會課件
- 眼視光學(xué)理論和方法智慧樹知到期末考試答案2024年
- 2024年陜西西安自貿(mào)港投資集團及下屬公司招聘筆試參考題庫含答案解析
- 采礦學(xué)課程設(shè)計[3]
- 1月10日人民警察節(jié)班會全文PPT
評論
0/150
提交評論