JSP與Servlets的區別
2024-09-05 00:19:11
供稿:網友
jsp和servlet到底在應用上有什么區別,很多人搞不清楚。我來胡扯幾句吧。簡單的說,sun首先發展出servlet,其功能比較強勁,體系設計也很先進,只是,它輸出html語句還是采用了老的cgi方式,是一句一句輸出,所以,編寫和修改html非常不方便。
后來sun推出了類似于asp的鑲嵌型的jsp,把jsp tag鑲嵌到html語句中,這樣,就大大簡化和方便了網頁的設計和修改。新型的網絡語言如asp,php,jsp都是鑲嵌型的script語言。
從網絡三層結構的角度看,一個網絡項目最少分三層:data layer,business layer, presentation layer。當然也可以更復雜。servlet用來寫business layer是很強大的,但是對于寫presentation layer就很不方便。jsp則主要是為了方便寫presentation layer而設計的。當然也可以寫business layer。寫慣了asp,php,cgi的朋友,經常會不自覺的把presentation layer和business layer混在一起。就象前面那個朋友,把數據庫處理信息放到jsp中,其實,它應該放在business layer中。
根據sun自己的推薦,jsp中應該僅僅存放與presentation layer有關的東東,也就是說,只放輸出html網頁的部份。而所有的數據計算,數據分析,數據庫聯結處理,統統是屬于business layer,應該放在java beans中。通過jsp調用java beans,實現兩層的整合。
實際上,微軟推出的dna技術,簡單說,就是asp+com/dcom技術。與jsp+beans完全類似,所有的presentation layer由asp完成,所有的business layer由com/dcom完成。通過調用,實現整合。
為什么要采用這些組件技術呢?因為單純的asp/jsp語言是非常低效率執行的,如果出現大量用戶點擊,純script語言很快就到達了他的功能上限,而組件技術就能大幅度提高功能上限,加快執行速度。
另外一方面,純script語言將presentation layer和business layer混在一起,造成修改不方便,并且代碼不能重復利用。如果想修改一個地方,經常會牽涉到十幾頁code,采用組件技術就只改組件就可以了。
綜上所述,servlet是一個早期的不完善的產品,寫business layer很好,寫presentation layer就很臭,并且兩層混雜。
所以,推出jsp+baen,用jsp寫presentation layer,用baen寫business layer。sun自己的意思也是將來用jsp替代servlet。
可是,這不是說,學了servlet沒用,實際上,你還是應該從servlet入門,再上jsp,再上jsp+bean。
強調的是:學了jsp,不會用java bean并進行整合,等于沒學。大家多花點力氣在jsp+bean上。
再補充幾句:
我們可以看到,當asp+com和jsp+bean都采用組件技術后,所有的組件都是先進行編譯,并駐留內存,然后快速執行。所以,大家經常吹的servlet/jsp先編譯駐內存后執行的速度優勢就沒有了。
反之,asp+com+iis+nt緊密整合,應該會有較大的速度優勢呈現。而且,asp+com+iis+nt開發效率非常高,雖然bug很多。
本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。