Web發展歷程及技術發展趨勢的一些個人看法

誰掌握了帶事務處理的Web,誰就掌握了Web。
 
這幾年來,一直盲從的跟隨着周圍人的技術趨勢,從沒有認真去研究過這個世界究竟發生了怎樣的變化。結合自己的經歷和網上所瞭解的一些信息來幫助自己認清楚Web這個世界的變化和對我個人的影響。
 
做Web技術工作多年,Web的發展一直影響着我們的技術趨勢。談Web的發展就不可能不提到Web1.0和Web2.0,這不是技術性的概念,而是web發展歷史斷代的成果。回憶初識網絡及從事網絡技術工作,生活中的一些細節和瑣碎片段一直間接的反映着Web發展所帶來的技術趨勢變化。
 
Web1.0時代,任何一個會上網的人都不可能不知道Html(Hypertext Markup Language:超文本標記語言),而那時候網絡提供的是一種信息瀏覽和簡單信息交互的平臺,講求的是門戶,內容,商業模式等。ASP,PHP,CGI等技術已經能基本上滿足中小企業電子商務及信息發佈平臺建設的需要。而ASP,CGI等技術由於其自身的侷限性已經不能滿足各行各業各種深層次的需求而被迫走向滅亡。從互聯網的發展和從事網絡技術被看好以來,有着各種彙編語言背景的程序員就根據自身的語言背景去選擇與他們所掌握語言相近的腳本語言,如C語言或Perl語言的程序員可能會去選擇學習PHP等。而ASP作爲一種服務器端腳本由於其可以包含HTML標記、普通文本、腳本命令以及微軟強大的COM組件支持功能而成爲很多網頁愛好者學習的主流。
 
但是無論當初你是多麼喜歡和欣賞ASP,它即將走向滅亡的趨勢都是不可逆轉的。除非你將自己的技能排在網絡開發的技術之外,或者你比較守舊,喜歡死守過時的技能不放。否則你必須根據技術的發展趨勢去選擇一種在未來世界更加暢通的WEB開發技術。在J2EE和.NET兩種平臺即將成爲主流的環境下,選擇JSP還是C#又成爲了Web開發的一次選擇。
 
雖然偶當時基本掌握的ASP和使用ODBC通過ADO連接數據庫的技術全部繼承微軟但偶還真沒對微軟有多麼深厚的感情。當所有同事們都包含熱情去學習.NET的並慫恿我也去了解一些C#知識的時候,我卻更看好JSP。JSP超越ASP和PHP以及有着強大的JAVA語言做後盾使我更熱衷學習。
 
幾種語言的比較:
ASP:<% ="Hello,world"%>
PHP:<? ECHO "Hello,World!"; ?>
JSP:<% out.print("Hello,World!"); %>
JAVA:
public class HelloWorld {
 public static void main(String[] args) {
  System.out.println("Hello,World!");
 }
}
C#:
public class HelloWorld{
 public static void Main(){
  System.Console.WriteLine("Hello, World!");
 }
}
先扔掉支持ASP的IIS服務器改用支持JAVA應用程序的Tomcat,使用JDBC-ODBC橋來實現ACCESS數據庫連接,最後乾脆將微軟全部棄用直接使用JDBC連接MYSQL或其他數據庫。
 
從最簡單的JSP+JavaBean到JSP+Servlet+JavaBean開始,也就是所謂的JSP的Model1和Model2模式。JSP有JAVA語言做背景使它自身的發展也逐漸走向規範。採用Model1模式執行一個往數據庫裏插入數值的動作,你可以有多種方式去實現,如果你是JAVA程序員擅長寫JAVA代碼,你可以寫2個BEAN文件和2個JSP文件,第1個BEAN用來封裝數據,第2個BEAN用來執行插入數據的業務,第1個JSP用來設置表單,第2個JSP用來調用JAVABEAN來執行操作。當然你也可以使用隱藏表單爲數據賦值的方式通過JSP頁面將數據提交給負責調用由BEAN寫的連接池的頁面來做出相同的動作。實際上就是用JSP做視圖,用BEAN去處理數據。但是無論你使用哪種方法去大量使用這種模式時都會帶來一個副作用,那就是會導致在頁面裏嵌入大量的JAVA控制代碼或大量的JSP語句,JSP頁面的源碼會變得非常臃腫。當要處理的業務邏輯複雜時,採用這種模式就會變得異常困難。所以三層數據結構表現的構想將會成爲實現解決JSP數據邏輯和業務邏輯分離的一種機制。這樣就有了JSPModel2模型,在JSP的Model2模式中增加了使用Servlet處理業務邏輯,JSP做視圖,JAVABEAN連接兩者而並只負責連接數據庫和對數據業務進行處理的模型機制使M-V-C框架逐漸變得更合理更科學。這樣的框架也就成爲了J2EE Web框架的發展趨勢。在各種基於表現M-V-C的開源框架中,Struts框架最先佔領整個市場,Struts是在JSP Model2 基礎上發展出來的一個“新物種”!這就好象生物界裏誕生了不同於貓的貓科動物老虎比貓還強大。Struts比JSP Model2更爲先進的理念就是它不僅更好的實現了M-V-C的分離,而且將每一模塊的任務更加明晰化,並且使用控制器建立映射機制來連接URL,Struts在自身發展的過程中逐漸脫離了JSP語句和JSP標籤。
 
任何網絡技術的發展都脫離不了互聯網的發展,Web 2.0時代帶來的不僅是它的“六度分隔”理論,更多的是對XML,TAG,AJAX等技術的發展和支持。這樣JSP,STRUTS以及各種J2EE組件在自身發展的同時也引入了XML,TAG等元素來完善和擴展自身。JSP在發展到1.1版本的時候已經將使用自定義標籤納入到規範中,當它發展到2.0版本的時候增加了JSTL(標準標籤庫)標籤庫和表達式的運用。
 
時代是在發展的,各種對複雜的數據邏輯和業務對象的處理需求都在不斷的加深,這就對框架提出了更高的要求,三層的表現形式是根本不能滿足對大量數據邏輯和業務對象處理需要的,持久化開發成爲必然趨勢,爲了使業務對象持久化,就必須引入關係數據庫的概念並將業務對象映射到關係數據庫中。而在對底層數據訪問操作與高層業務邏輯的分離中又引入了DAO模式,DAO模式提供的是關係型數據庫所需要訪問的所有業務對象的接口,採用XML文件來配置業務對象和關係型數據庫數據之間的關係。在各種開源的OJB模型中,Hibernate成爲Struts框架最理想的用來拓展底層數據交換的組件。而晚於Struts半年後推入市場的Spring框架也被人們逐漸的認識到它的價值。Spring是一種以反向控制設計原理爲基礎的開源框架,核心概念是“反向控制”(IoC)和“面向方面編程”(AOP),它對業務邏輯層各類事務處理的應用程序資源非常豐富,並能簡化使用接口開發的複雜性,具有JDBC DAO層的數據驅動的應用程序。用Struts做表現,Spring做MVC前端業務邏輯層事務處理,Hibernate做底層數據處理,基本上能夠滿足目前各類複雜的數據業務處理。
 
但任何一種框架的擴展都是有侷限性的,J2EE的各類組件都在發展自身的基礎上不斷完善,Struts也在不斷的升級,未來將會有一種擴展性更強的框架誕生。現在一些未來技術已經展露頭腳,Tapestry框架是一個基於java servlet容器和Tapestry應用程序之間的層。基於servlet的一種完全頁面組件化的開發框架,而且現在發展的非常成熟,它能運行於servlet容器,對各類文本標籤有良好的支持,並能整合現有的各種J2EE容器。而基於JSP發展起來的JSF也包含了Struts和類似於swing編程的UI組件,和Swing一樣是面向對象編程,並有強大的標籤庫支持。Tapestry和JSF都屬於事件驅動型組件模型,所不同的是前者是servlet延續,後者是JSP的構架,從J2EE的發展上來看,不難看出JAVA工程師如果想用JSF做框架必須補充JSP基礎,要熟悉JSP.2規範的組件,並對處理用戶界面的圖形包Swing也要了解,Tapestry也已經迅速被更多的人所掌握和了解。
發佈了24 篇原創文章 · 獲贊 21 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章