隨著技術的日新月異 ,jsp的新技術也層出不窮,為了方面大家的學習與工作,下面將簡單的介紹一下JSP的架構、開發工具、Web伺服器及其鋮缺點。
架構:
struts: Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟體,這是它的一大優點,使開發人員能更深入的瞭解其內部實現機制。
除 此之外,Struts的優點主要集中體現在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,比較靈活,能大大提高開發效率。另 外,就目前國內的JSP開發人員而言,除了使用JSP內建的常用標記外,很少開發自己的標記,或許Struts是一個很好的起點。struts曆經6年多的 發展,是目前使用者數最多、Team Dev和社區最火熱的架構,適用於中小型項目的快速開發。
tapestry: Tapestry是一個開源的基於servlet的應用程式架構,它使用元件物件模型來建立動態,互動的web應用。一個組件就是任意一個帶有 jwcid屬性的html標記。其中jwc的意思是Java Web Component。Tapestry使得java代碼與html完全分離,利用這個架構開發大型應用變得輕而易舉。並且開發的應用很容易維護和升級。 Tapestry支援本地化,其錯誤報表也很詳細。Tapestry主要利用javabean和xml技術進行開發,是一個組件式的、事件驅動的架構,理 念很先進,想實作類別似於傳統型程式開發的那種便捷模式。但是它的學習曲線比較陡峭,要花不少時間才能掌握它。它適合大型項目開發,隨著組件的積累,開發越到 後期可複用的組件越多,開發速度越快。
spring mvc: Spring 的 Web MVC 架構是圍繞 DispatcherServlet 設計的,它把請求指派給處理常式,同時帶有可配置的處理常式映射、視圖解析、本地語言、主題解析以及上傳檔案支援。預設的處理常式是非常簡單的 Controller 介面,只有一個方法 ModelAndView handleRequest(request, response)。Spring 提供了一個控制器階層,可以派生子類。如果應用程式需要處理使用者輸入表單,那麼可以繼承 AbstractFormController。如果需要把多頁輸入處理到一個表單,那麼可以繼承 AbstractWizardFormController。spring提供的東東,使用了spring的IoC,並且也非常強大,但是感覺它比較接近 低層,要關注的東西很多。
JSF: JSF負責對用戶端裝置產生影響,它提供了將展示層、應用程式層和商務邏輯層整合在一起的工具, 但是,JSF的範圍被限制在展示層。
以下是JSF Framwork提供最重要的服務。
◆ MVC架構
軟體使用者總是要操作各種資料,例如,一個潛在使用者提交的註冊資訊,這些資料叫做model。軟體開發人員必須將這些資料展現給使用者,這就是視圖 views。在Web應用程式中,HTML檔案用於描繪這些資料。
JSF將model和view結合在一起。可以用下面的方式將model屬性和view組件綁定:
“#(user.username) “/>
並且,JSF還充當控制器Controller的角色,它可以響應使用者的事件(例如,提交資料或者修改了某一個值),將這些事件的資料交由處理 model的類以更新model。例如,可以調用一個方法來判斷某個使用者是否被允許登陸:
◆ 資料類型轉換
使用者在HTML表單輸入的都是文本,而我們需要的可能是數字、日期等類型,JSF提供了非常簡單的方法用於指定或者自訂資料轉換規則。
◆ 驗證和錯誤處理
在JSF中可以非常簡單的實現諸如“某個欄位不得為空白”或“某個自動必須為數字”之類的規則。客戶還希望在他輸入錯誤資料之後得到適當的提 示,JSF提供了完成絕大多數類似任務的方法。
◆ 國際化
JSF提供國際化發行管理,解決諸如字元編碼和資源檔選擇等課題。
◆ 自訂群組件
◆ 可選擇的渲染器
預設的,JSF將tag渲染為HTML格式。但是,也可以非常簡單的擴充它,以適應其他渲染要求,比如WML。
◆ 工具支援
這個得等。
webwork: Webwork是一個原始碼開放的Web應用程式框架,用於簡化基於Web的應用開發。
Webwork 的最大優點是它的簡單性和靈活性。Webwork有一個很小的API,它使開發人員可以迅速進行開發工作。
Webwork是許多特性和適用性的組 合,包括使用variour view技術,例如JavaServer Pages(JSP),Velocity,Extensible Stylesheet Language Transformations
Specification(XSLT)和 JasperReporters。還有,Webwork對JFreechart有非常好的支援。和struts一樣經典的架構,而且比struts更易於 使用,但是社群就不如struts那麼強大了。
struts2:struts和webwork合并後的東東,還沒有正式發布,不知道會不會是個怪胎。
伺服器:
這些架構基本不依賴特定的伺服器,tomcat、jboss、weblogic都沒有問題。
tomcat: Tomcat是一個開放原始碼、運行servlet和JSP Web應用軟體的基於Java的Web應用軟體容器。Tomcat由Apache-Jakarta子項目支援並由來自開放性原始碼Java社區的志願者進 行維護。Tomcat Server是根據servlet和JSP規範進行執行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規範且比絕大多數商業應用軟體伺服器要好。做為web容器輕量小巧,如果你不是使用ejb開發,那就可 以用它,快速方便。
jboss:JBoss伺服器是一種優秀的J2EE伺服器,和BEA的Weblogic,IBM的 Websphere屬於同類產品, JBoss的優勢在於具有良好的性價比,實現了所有j2ee的規範和api,支援的標準新,版本快,有開放源碼的所有優點,支援熱deploy,適合開發 環境,尤其是大的團隊開發,deploy會拖掉整個團隊的效率。文檔太少。啟動快。
JBoss為完全開放源碼的免費軟體,而且具有良好的運 行效率和可靠性,因此已經得到越來越多的J2EE應用開發人員的青睞。
他其中的web容器就是用tomcat,不過支援了ejb,速度慢一些,不適合開發階段,可以用於真實運行環境(免費)。
weblogic: WebLogic 是一套基於JAVA功能強大的電子商務套件,提供了許多功能強大的中介軟體以方便編程人員編寫的JSP、SERVLET 等電子商務應用,可以為企業提供一個完整的商務應用解決方案。不適合開發階段,太慢了,適合於運行環境(收費)。
開發工具:
IBM VisualAge for Java :IBM的Web開發產品可謂同類之中的龐然大物:體積龐大,功能眾多;使用對象是整個Team Dev;而設計目標則是搞定視野裡能看到的一切!
VisualAge for Java是提供了嚮導功能的第一個Java IDE,它可以產生大量的EJB基礎結構代碼,從而簡化了EJB開發過程。另外,對話和實體beans的建立嚮導、把beans映射到現有關係資料存放區以 及先進的測試環境極大地減少了建立、測試和部署EJB所花的時間。
Jbuiler :JBuilder 軟體的目標定位是代碼開發人員而不是進階設計人員,所以JBuilder中包含了大量的嚮導程式和其他針對中介層的快速開發工具。JBuilder效能穩 定、使用方便,特別適用於建立Java 組件。此外該軟體還提供了很多JSP功能。
Jrun :Allaire公司的JRun是一個具有最廣闊適用性的Java引擎,用於開發及實施由Java Servlets(JSP)和JavaServer Pages編寫的伺服器端Java應用。其中Web伺服器包括了Microsoft IIS,Netscape Enterprise Server,Apache等。
JRun是開發實施伺服器端Java的先進引擎。如果你希望在你的Web應用中添加伺服器端Java功能,那麼 JRun將成為你的正確選擇。
eclipse+myeclipse:幾乎可以滿足上述所有開發的需要。也可以根據需要找到某個架構的特定插 件,但是myeclipse本身就整合了各種外掛程式,更方便易用。
其他相關的技術:
urlrewrite:URL重寫轉換,讓前端 使用者通過靜態路徑訪問服務,後台自動轉為動態路徑。
sitemesh:簡化頁面開發,讓頁面開發模板化,公用 相同的地區。
acegi安全架構:攔截並校正使用者訪問的url,確定使用者是否有權訪問。功能不僅如此,很強 大。
displaytag:列表顯示,自動實現翻頁、資料匯出等功能。
dtree:樹 形顯示,簡單易用。
jfreechat:統計圖表產生。
dwr:適 合java的ajax開發架構,新版本中實現了伺服器推模式,顛覆傳統的用戶端拉模式。
FCKeditor:網 頁的所見即所得 (WYSIWYG)編輯器,漂亮的外觀,多語言支援等,很強大。