JAVA基礎:JSP與Servlet的區別(轉)
JAVA基礎:JSP與Servlet的區別(轉)[@more@] 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的速度劣勢很快就可以被克服。
後來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的速度劣勢很快就可以被克服。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961886/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java servlet 與jsp幾種頁面跳轉的方法JavaServletJS
- Jsp和Servlet有什麼區別?JSServlet
- JSP規範、Servlet關係、基礎JSServlet
- javaweb關於jsp、servlet基礎筆記JavaWebJSServlet筆記
- 【Java基礎】ServletJavaServlet
- java 基礎型別與byte[]的轉換Java型別
- Java基礎-- ==號與equals()方法的區別Java
- Filter 與 Servlet 的區別FilterServlet
- 『Java 語法基礎』a = a + b 與 a += b 的區別Java
- 『Java 語法基礎』String、StringBuffer 與 StringBuilder 的區別JavaUI
- 基於jsp和servlet簡單的java web開發(idea)JSServletJavaWebIdea
- Java學習筆記-Day53 Servlet與JSPJava筆記ServletJS
- jQuery基礎與js的區別jQueryJS
- 基礎-JAVA集合型別主要區別Java型別
- java基礎學習:JavaWeb之ServletJavaWebServlet
- Java基礎- ==和equals和hashCode的區別Java
- java基礎學習:JavaWeb之JSPJavaWebJS
- 記錄web中的servlet轉發及jsp的接受WebServletJS
- jsp基礎-初識jspJS
- [java基礎]StringBuilder和StringBuffer的3個區別JavaUI
- [Java基礎]之 資料型別轉換Java資料型別
- Servlet與JSP進階五:瀏覽器CookieServletJS瀏覽器Cookie
- JSP基礎知識JS
- jsp隱式物件-Servlet物件JS物件Servlet
- jsp進階教程和ServletJSServlet
- jsp錯誤: "javax.servlet.http.HttpServlet" was not found on the Java Build PathJSJavaServletHTTPUI
- Java synchronized與ReentrantLock的區別JavasynchronizedReentrantLock
- Java中(==)與equals的區別Java
- java的8種基礎型別Java型別
- tomact和javaee、jsp、servlet對應的版本MacJavaJSServlet
- Java中HashMap,LinkedHashMap,TreeMap的區別[轉]JavaHashMap
- servlet 轉發與重定向Servlet
- Day91.Servlet基本內容① -Servlet、jsp和表示式ServletJS
- Jsp+JavaBean模式,Jsp+Servlet模式,MVC模式介紹JSJavaBean模式ServletMVC
- JavaWeb開發基礎Servlet APIJavaWebServletAPI
- Servlet基礎教程之呼叫流程Servlet
- Servlet基礎知識點整理Servlet
- java-----instanceof與getClass的區別Java
- Java與C語言的區別?JavaC語言