轉自:http://hi.baidu.com/9%D2%BB%CB%EA%B4%F2%CB%C0%D0%DC9/blog/item/e3d5fe2e3317c6554fc2265e.html
首先sun提出的是Servlet體系,這個體系使得使用JAVA的程式員也能開發基於B/S架構的WEB應用程式,使用Servlet類將HTTP請求和響應封裝在標準JAVA類中來實現各種WEB應用方案。這一步也是sun的J2EE架構中的最關鍵的一步。
隨著大量的B/S架構程式開發出來以後,人們發現Servlet類的編寫是非常繁瑣的,主要集中在幾個問題上:首先有大量冗餘代碼,這些代碼在每個servlet類中都是一模一樣或者基本近似的,其次是開發Servlet的程式員很少有精通美工的,導致使用Servlet開發無法方便的做到各種頁面效果和豐富多彩的風格,這個時候sun借鑒了微軟的ASP方式,正式提出JSP(也就是Servlet 1.1),JSP推出後,JAVA程式員也能象ASP的程式員那樣將服務端代碼添加在已經由美工設計好的靜態頁面上,經過一個JSP容器對JSP檔案進行自動解析並轉換成Servlet類來交給WEB伺服器運行。這麼一來,極大的提高了工作效率。
隨著JSP的廣泛應用和各種設計模式的盛行,人們發現JSP也暴露了大量的問題:首先,夾雜服務端代碼的JSP檔案給後期維護和頁面風格再設計帶來大量阻礙,美工在修改頁面的時候不得不面對大量看不懂的服務端代碼,程式員在修改邏輯的時候經常會被複雜的用戶端代碼搞昏。交叉的工作流程使得JSP面臨大量的困境。這直接導致了servlet1.2的出台,sun在這一版中充分倡導了MVC的概念,大量頁面標籤的使用使得交叉工作流程變的稍微的容易了,服務端標籤的相容性使得美工也可以直接隨意移動這些標籤而得到對應的效果。但是又暴露了一些問題:設計的差的標籤使得程式的錯誤得不到檢測,不成熟的代碼導致無法真正的使服務端標籤可以和用戶端標籤那樣隨意移動而不會導致邏輯錯誤。這些都有待解決
sun借鑒微軟的ASP提出了JSP,而微軟又借鑒SUN的JSP架構完善了ASP.net的架構,所以我們看到,通過不斷的競爭與完善,技術總是會讓我們逐漸的得心應手,所以盡情享受吧