java servlet及其特點
servlet是java技術對cgi編程的回答。servlet程序在服務器端運行,動態地生成web頁面。與傳統的cgi和許多其他類似cgi的技術相比,java servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節省投資(更重要的是, servlet程序員收入要比perl程序員高:-):
高效:
在傳統的cgi中,每個請求都要啟動一個新的進程,如果cgi程序本身的執行時間較短,啟動進程所需要的開銷很可能反而超過實際執行時間。而在servlet中,每個請求由一個輕量級的java線程處理(而不是重量級的操作系統進程)。
在傳統cgi中,如果有n個并發的對同一cgi程序的請求,則該cgi程序的代碼在內存中重復裝載了n次;而對于servlet,處理請求的是n個線程,只需要一份servlet類代碼。在性能優化方面,servlet也比cgi有著更多的選擇,比如緩沖以前的計算結果,保持數據庫連接的活動,等等。
方便:
servlet提供了大量的實用工具例程,例如自動地解析和解碼html表單數據、讀取和設置http頭、處理cookie、跟蹤會話狀態等。
功能強大:
在servlet中,許多使用傳統cgi程序很難完成的任務都可以輕松地完成。例如,servlet能夠直接和web服務器交互,而普通的cgi程序不能。servlet還能夠在各個程序之間共享數據,使得數據庫連接池之類的功能很容易實現。
可移植性好:
servlet用java編寫,servlet api具有完善的標準。因此,為i-planet enterprise server寫的servlet無需任何實質上的改動即可移植到apache、microsoft iis或者webstar。幾乎所有的主流服務器都直接或通過插件支持servlet。
節省投資:
不僅有許多廉價甚至免費的web服務器可供個人或小規模網站使用,而且對于現有的服務器,如果它不支持servlet的話,要加上這部分功能也往往是免費的(或只需要極少的投資)。
jsp及其特點
javaserver pages(jsp)是一種實現普通靜態html和動態html混合編碼的技術,有關jsp基礎概念的說明請參見《jsp技術簡介 》。
許多由cgi程序生成的頁面大部分仍舊是靜態html,動態內容只在頁面中有限的幾個部分出現。但是包括servlet在內的大多數cgi技術及其變種,總是通過程序生成整個頁面。jsp使得我們可以分別創建這兩個部分。例如,下面就是一個簡單的jsp頁面:
|
下面是jsp和其他類似或相關技術的一個簡單比較:
jsp和active server pages(asp)相比
microsoft的asp是一種和jsp類似的技術。jsp和asp相比具有兩方面的優點。首先,動態部分用java編寫,而不是vb script或其他microsoft語言,不僅功能更強大而且更易于使用。第二,jsp應用可以移植到其他操作系統和非microsoft的web服務器上。
jsp和純servlet相比
jsp并沒有增加任何本質上不能用servlet實現的功能。但是,在jsp中編寫靜態html更加方便,不必再用 println語句來輸出每一行html代碼。更重要的是,借助內容和外觀的分離,頁面制作中不同性質的任務可以方便地分開:比如,由頁面設計專家進行html設計,同時留出供servlet程序員插入動態內容的空間。
jsp和服務器端包含(server-side include,ssi)相比
ssi是一種受到廣泛支持的在靜態html中引入外部代碼的技術。jsp在這方面的支持更為完善,因為它可以用servlet而不是獨立的程序來生成動態內容。另外,ssi實際上只用于簡單的包含,而不是面向那些能夠處理表單數據、訪問數據庫的“真正的”程序。
jsp和javascript相比
javascript能夠在客戶端動態地生成html。雖然javascript很有用,但它只能處理以客戶端環境為基礎的動態信息。除了cookie之外,http狀態和表單提交數據對javascript來說都是不可用的。另外,由于是在客戶端運行,javascript不能訪問服務器端資源,比如數據庫、目錄信息等等。
新聞熱點
疑難解答