Java Web開發方案有多種可供選擇,這裡列舉一些經典的開發模式進行橫向比較,為Java Web的開發模式選擇提供參考。除此之外還有好多方案(如Tapestry和Wicket)並不瞭解,這裡就不列舉了。
JSP+JAVABEAN開發模式:
特點:該模式將商務邏輯與頁面表現進行分離,在一定程度上增加了程式的可調試性和維護性。
缺點:頁面將控制與顯示集於一身。
結論:簡單,適合小型項目的快速構建與運行。
JSP+Servlet+JavaBean開發模式:
特點:JSP作為視圖,來表現頁面;Servlet作為控制器,控製程序的流程並調用業務進行處理;JavaBean封裝了商務邏輯。遵循了MVC設計模式。
缺點:沒有統一的開發架構導致開發週期長。
Struts開發方案:
特點:成熟的MVC開發架構。
構成:控制器:ActionServlet 組件:Struts架構的中央控制器。
RequestProcessor 組件:每個子模組都具有的要求處理常式。
Action 組件:業務代理,它將調用模型進行一項具體的商務邏輯處理。
視圖:主要由JSP頁面構成
還包括HTML文檔;標準標籤庫(JSTL)和Struts標籤庫;
JavaScript指令碼和CSS樣式;
多媒體檔案;
訊息資源檔;
ActionForm類。
模式:通常在Structs中使用其他模型組建來實現商務邏輯。
如:JavaBean技術、EJB技術、Hibernates設計模式。
結論:對於一些大型的項目,Struts架構會提高開發效率,並對後期的維護有很大好處。
Spring開發方案:
特點:擁有IOC和AOP兩種先進的技術為基礎,完美的簡化了企業級開發的複雜度,
是一個理想的Web程式架構。
構成:核心模組:實現了IOC模式,包含BeanFactory類負責對JavaBean的配置與管理。
上下文模組:繼承BeanFactory類,
添加了事件處理、國際化、資源裝載、透明裝載以及資料校正等功能,
提供了架構式的Bean訪問方式和很多企業級功能。
如:JNDI訪問、支援EJB、遠程調用、繼承模板架構、E-mail和定時任務調度等。
AOP模組:提供了用標準Java語言編寫的AOP架構,
使應用程式拋開EJB的複雜性,但擁有傳統EJB的關鍵功能。
DAO模組:提供了JDBC的抽象層,並且提供了對聲明式事物和編程式事務的支援。
Web模組:建立在上下文模組基礎之上,提供了Servlet監聽器的Context和Web應用的上下文。
對現有的Web架構如:JSF、Tapestry、Struts等提供了整合。
O/R映射模組:提供了對現有ORM架構的支援如Hibernate。
Spring MVC架構:建立在核心模組之上,嫩夠適應於多種多視圖、模板技術、國際化和驗證服務,
實現控制邏輯和商務邏輯清晰的分離。
Struts+HIbernate開發方案:
特點:利用Struts的MVC設計模式,與Hibernate持久化對象組成的開發方案。
Struts+Spring+Hibernate開發方案:
特點:Struts負責展示層,
Spring負責邏輯層的業務,
Hibernate持久層中資料庫的操作,組成的開發方案。