換個角度談JSP和PHP(摘)
最近一段時間,有人老是問:JSP是否要代替PHP? 那我們就來了解一下 什么是JSP? 大家知道JSP是由Sun Microsystem公司與1999、6月推出的最新 技術,是基于Java Servlet以及整個java體系的web開發技術,是Servlet 2.1 API的擴展。利用這一技術可以建立先進,安全和跨平臺的動態網站。
JSP與微軟的Active Server Pages 兼容,所不同的是它使用類似HTML 的標記以及java 程序代碼段而不是VBScript.當你所使用的網站服務器沒有 提供本地的ASP支持,可以考慮使用JSP.
JSP和SERVLET到底在應用上有什么區別,很多人搞不清楚。簡單的說,SUN 首先發展出SERVLET,其功能比較強勁,體系設計也很先進,只是,它輸出 HTML語句還是采用了老的CGI方式,是一句一句輸出,所以,編寫和修改HTML 非常不方便。后來,sun推出了類似于ASP的同類JSP,把JSP TAG鑲嵌到html語句 中,這樣,就大大和方便了網頁的設計和修改。所以說,它和ASP,PHP是完全 一樣的嵌入型的腳本語言。
從網絡的結構來看,一個網絡項目最少分為三層:數據層,邏輯層,用戶層。 servlet用來寫邏輯層,但用來寫用戶層就很不方便。jsp則主要是為了方便 寫用戶層的,當然也可以寫邏輯層,F在有好多人,經常會不自覺的把用戶層和 邏輯層混在一起。
其實,根據sun自己的推薦,jsp中應該僅僅存放于邏輯層有關的東西, 也就是,只放輸出html網頁的部分。而所有的計算,分析等,統統放在邏輯層 ,應該放在java bean中,通過jsp調用java beans,實現兩層的整合。
所以,學了jsp,不會用java bean并進行整合,等于沒學。所以jsp在本質 上和php, asp是類似的一個腳本語言。只不過,它是用java寫的。
php在用戶層上的表現是有目供睹的,現在唯一的問題就是它缺少一個邏輯 層,但這個邏輯層是可以用其它語言來寫的,就向COM/DCOM是用VB,VC寫的, java bean是用java寫的,所以,php不一定非要用某個語言寫這個組件, 它完全可以調用其它語言寫的組件,用來實現比較復雜的邏輯功能。
不知大家注意到沒有,微軟提出的三層模型是:用戶層用asp,asp+, 邏輯層是com/com+,數據層是ado,而sun 提出的三層模型是:用戶層用jsp, 邏輯層是java bean,數據層是jdbc,而php呢,沒有以上的部分,這是為什么呢?
這就是因為,它不是有某個公司來制定的,因為它是開放源阿。所以,php將來 的發展方向應該是如何做到和用其它組件完美結合的能力,完善與各個數據庫 有個統一的接口問題。也就是發揮我們在用戶端的優勢,結合各種組件和數據庫 ,從另一方面到達真正的跨平臺,高效率,安全等要求。
其實,我們不難發現,sun開發了三類產品, 它們分別是客戶端用java applect ,服務器端用servlet, 數據庫端用jdbc,但大家也知道,客戶端采用applet已經 很少了。說明,applet并不成功。也許將來在帶寬無限大的時候,也許會真正 實現它吧。
另外,說些局外的話,如果微軟被分拆,操作系統將戰火紛飛,那時,想我們 這些軟件的開發人員必要找一個通用語言進行開發,到時java會一統天下。而且 從微軟分出的應用軟件公司將成為java的新領導者。目前的java大頭sun和ibm都 死氣沉沉,令人失望。希望新公司能注入新活力。不過,這樣會影響java的跨 平臺,因為要展開java標準大戰。
最后,要說的是,jsp并不能完全代替php。
|