Java Servlet與Applet、CGI、JSP的比較

2020-12-25 51CTO

Java Servlet與Applet、CGI、JSP的比較

Java Servlet是一個強的在編程領域十分重要的角色,那麼Java Servlet與一些相關的語言比如與Applet、CGI、JSP之間的區別是什麼呢?本文將會給你一個答案。

作者:佚名來源:網際網路|2009-07-03 12:48

Java Servlet是一種獨立於平臺和協議的伺服器端的Java應用程式,可以生成動態的Web頁面。

Java Servlet是位於Web 伺服器內部的伺服器端的Java應用程式,與傳統的從命令行啟動的Java應用程式不同,Servlet由Web伺服器進行加載,該Web伺服器必須包含支持Servlet的Java虛擬機。

Java Servlet與Applet 的比較:

相似之處:

◆它們不是獨立的應用程式,沒有main()方法。

◆它們不是由用戶或程式設計師調用,而是由另外一個應用程式(容器)調用。

◆它們都有一個生存周期,包含init()和destroy()方法。

不同之處:

◆Applet具有很好的圖形界面(AWT),與瀏覽器一起,在客戶端運行。

◆Java Servlet則沒有圖形界面,運行在伺服器端。

Java Servlet與CGI(Common Gateway Interface) 的比較:

與傳統的CGI和許多其他類似CGI的技術相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節省投資。在未來的技術發展過程中,Servlet有可能徹底取代CGI。

◆高效

在傳統的CGI中,每個請求都要啟動一個新的進程,如果CGI程序本身的執行時間較短,啟動進程所需要的開銷很可能反而超過實際執行時間。而在Servlet中,每個請求由一個輕量級的Java線程處理(而不是重量級的作業系統進程)。

在傳統CGI中,如果有N個並發的對同一CGI程序的請求,則該CGI程序的代碼在內存中重複裝載了N次;而對於Java Servlet,處理請求的是N個線程,只需要一份Servlet類代碼。在性能優化方面,Servlet也比CGI有著更多的選擇。

◆方便

Java Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單數據、讀取和設置HTTP頭、處理Cookie、跟蹤會話狀態等。

◆功能強大

在Java Servlet中,許多使用傳統CGI程序很難完成的任務都可以輕鬆地完成。例如,Java Servlet能夠直接和Web伺服器交互,而普通的CGI程序不能。Servlet還能夠在各個程序之間共享數據,使得資料庫連接池之類的功能很容易實現。

◆可移植性好

Java Servlet用Java編寫,Servlet API具有完善的標準。因此,為IPlanet Enterprise Server寫的Servlet無需任何實質上的改動即可移植到Apache、Microsoft IIS或者WebStar。幾乎所有的主流伺服器都直接或通過插件支持Servlet。

◆節省投資

不僅有許多廉價甚至免費的Web伺服器可供個人或小規模網站使用,而且對於現有的伺服器,如果它不支持Servlet的話,要加上這部分功能也往往是免費的(或只需要極少的投資)。

Java Servlet與JSP(JavaServer Pages) 的比較:

JavaServer Pages(JSP)是一種實現普通靜態HTML和動態HTML混合編碼的技術,JSP並沒有增加任何本質上不能用Servlet實現的功能。但是,在 JSP中編寫靜態HTML更加方便,不必再用println語句來輸出每一行HTML代碼。更重要的是,藉助內容和外觀的分離,頁面製作中不同性質的任務可以方便地分開:比如,由頁面設計者進行HTML設計,同時留出供Java Servlet程式設計師插入動態內容的空間。

Java Servlet與Applet、CGI、JSP的比較呢就介紹到這裡,你是不是對他們各自的情況有所了解呢?

【編輯推薦】

  1. Servlet和JSP中的多線程同步問題
  2. 無需修改代碼增強Servlet和JSP的安全性
  3. Tomcat下JSP、Servlet和Bean的配置
  4. 如何提升Servlet和JSP應用程式的效率
  5. JSP和Servlet中的幾個編碼的作用及原理

【責任編輯:

李彥光

TEL:(010)68476606】

點讚 0

相關焦點

  • Java applet 安全性探究
    【IT168專稿】引言  因為一個0day,讓作者對java applet心血來潮,隨著不斷的失敗,發現了一個又一個安全特性。本文提醒大家,除了activeX,還有這麼一種東西,一旦出現了安全隱患,也會幫大家做些什麼。
  • JAVA基礎之Applet
    Applet是Java編寫的可以在瀏覽器端運行的代碼,它與應用程式的明顯區別在於其執行方式的不同,應用程式如C程序是從main()主程序開始運行的,而Applet則比較複雜.具體如何複雜我不太清楚,但我會慢慢清楚的。
  • 拿下BAT的offer,這篇匯總的Servlet常見面試題正適合你
    現在我們給servlet一個標準的定義:servlet是運行在web伺服器中的小型java程序,通常通過HTTP協議接受和相應來自web客戶端的請求。它的特點如下:(1)Servlet對像,由Servlet容器創建。通常這個容器就是tomcat。(2)Servlet是一個接口:位於javax.servlet包中。
  • JSP/Servlet:Servlet/JSP會話跟蹤機制 (1)
    如果找到了會話文本文件,setValue方法讀取文本文件的各個行,然後比較讀入的行與name:如果讀入的文本行開頭與name一樣,則說明該名字已經保存,setValue方法將替換該行後面的值;如果name不能與讀入的文本行匹配,則這行文本被直接複製到一個臨時文件。
  • JAVA基礎學習|JAVA中的包總結!
    4.java.net包。  該包提供實現網絡應用與開發的類。  5.java.sql包。  該包提供了使用Java語言訪問並處理存儲在數據源(通常是一個關係型資料庫)中的數據API。  6.java.awt包
  • java是什麼文件格式?.java文件怎麼打開?
    java是什麼文件?  Java文件是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平臺的總稱。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。
  • Java SSM框架之 springMVC 框架實現用戶登錄
    >上面這個框起來的配置是為了讓程序啟動時去加載我們的 springmvc 配置文件.如果你不配置這個選項,默認會去加載 classpath 下面名稱為[servlet-name]-servlet.xml下面框起來的配置的是請求攔截器1:可以配置*.do,*.action
  • Java的領域應用!
    大型跨國投資銀行使用java編寫前後臺電子交易系統、數據處理項目、結算確認系統等項目。在大多數情況下,Java用於伺服器端的開發。三、網站Java在電子商務和網站開發領域佔有一定的地位。開發人員可以使用許多不同的框架來創建Web項目、struts2.0、SpringMVC和框架。即使是簡單的servlet、jsp和基於struts的網站也經常用於政府項目。
  • java_security_calendar_2019(day5-day8)
    Day5示例代碼:import javax.servlet.http.HttpServletRequest;import java.util.Enumeration;publicclassRequest{publicstatic String toString(HttpServletRequest req){ StringBuilder sb = new
  • Java程式設計師必會SpringMVC框架入門 b/s架構精講0基礎也能看懂
    jstl標籤庫是jsp頁面依賴的核心jar,當我們創建web項目是jsp頁面會出現編譯期間異常,那是因為沒有jstl包的依賴,如果導入jar或者配置Tomcat運行環境即可解決,Tomcat中包含jstl。
  • Java 面試如何坐等 offer?
    4.final 在 java 中有什麼作用?5.java 中的 Math.round(-1.5) 等於多少?6.String 屬於基礎的數據類型嗎?7.java 中操作字符串都有哪些類?它們之間有什麼區別?
  • 動力節點Java學院2021年Java學習路線圖最新出爐啦
    Javaweb初級的一般是用JSP(Java Server Pages)+servlet+Javabean來開發,對大型的網站一般是使用框架來開發的,例如struts,hibernate,spring,典型的struts框架結構。
  • 南京課工場:自學Java編程如何進大廠?
    推薦看視頻,至於 msyql,入門推薦看《mysql不知必會》,進階看《mysql技術內幕》2、servlet+jsp 系列。框架的學習框Servlet 寫太麻煩了,只有認真學過 servlet 的人才能吹框架的好處,所以先學 servlet 再來學習框架,主要有三大框架:Spring + SpringMVC + Mybatis。
  • Java 中 Comparable 和 Comparator 比較
    Comparable 定義Comparable 接口僅僅只包括一個函數,它的定義如下:package java.lang; import java.util.*; public interface Comparable<T> { public int compareTo(T o); }說明:假設我們通過 x.compareTo
  • jsp中使用cookie時報錯……
    今天在看jsp中的cookie時,遇到一個比較麻煩的問題。 關鍵代碼如下: 登錄頁面:login.jsp 處理登錄業務的doLogin.jsp 登錄成功跳轉到的頁面:index.jsp 代碼都寫的沒問題,就是報錯: ava.lang.IllegalArgumentException
  • 跟我學java編程—認識java的整數類型
    示例2:int類型的溢出在D盤Java目錄下,新建「OverFlow.java」文件。用記事本打開「OverFlow.java」文件,輸入以下代碼:編譯「OverFlow.java」文件,在命令行窗口輸入「javac OverFlow.java」並執行命令,編譯器顯示如下信息:編譯器給出過大的整數錯誤信息,num
  • 跟我學java編程—Java的Scanner類
    用記事本打開「ScannerInitSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示Scanner如何聲明及初始化。語句「import java.util.*;」,用於導入包含Scanner的類庫,Scanner包含在Java 核心類庫util中,要使用Scanner類,必須導入java.util庫,類庫導入關鍵字為import。