詳談jsp和servlet的區別


  其實說白了JSP和SERVLET到底什么區別呢,JSP就象賓館前台的服務員,要長的不錯,讓顧客一看就覺得比較舒服,他主要就是負責顯示這個賓館的形象的.而SERVLET就象部門經理,要處理各種各樣的業務和事情,而bean呢就象是高層領導了,他負責從部門經理處獲得信息,報告給董事會,或者把董事會的建議和計划吩咐下去.他們分工合作,各干其職.不知道同志們明白沒有.

  具體的看下下面吧.

  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很多。

  那么,為什么還用JSP+BEAN?因為JAVA實在前途遠大。微軟分拆后,操作系統將群雄並起,應用軟件的開發商必定要找一個通用開發語言進行開發,JAVA一統天下的時機就到了。如果微軟分拆順利,從中分出的應用軟件公司將成為JAVA的新領導者。目前的JAVA大頭SUN和IBM都死氣沉沉,令人失望。希望新公司能注入新活力。不過,新公司很有可能和舊SUN展開JAVA標准大戰,雙方各自制定標准,影響JAVA誇平台。

  另外,現在的機器速度越來越快,JAVA的速度劣勢很快就可以被克服。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM