2019/3/3 16:48:37
Java Servlet 及其特點
Servlet是Java技術(shù)對CGI編程的(de)回答。Servlet程序在服務器(qì)端運行(xíng),動态地(dì)生成Web頁面。與傳統的(de)CGI和(hé)許多其他(tā)類似CGI的(de)技術(shù)相(xiàng)比,Java Servlet具有(yǒu)更高(gāo)的(de)效率,更容易使用(yòng),功能(néng)更強大(dà),具有(yǒu)更好的(de)可(kě)移植性,更節省投資(更重要的(de)是, Servlet程序員收入要比Perl程序員高(gāo))
高(gāo)效。在傳統的(de)CGI中,每個(gè)請求都(dōu)要啓動一個(gè)新的(de)進程,如(rú)果CGI程序本身的(de)執行(xíng)時間較短,啓動進程所需要的(de)開(kāi)銷很可(kě)能(néng)反而超過實際執行(xíng)時間。而在Servlet中,每個(gè)請求由一個(gè)輕量級的(de)Java線程處理(lǐ)(而不是重量級的(de)操作系統進程)。
在傳統CGI中,如(rú)果有(yǒu)N個(gè)并發的(de)對同一CGI程序的(de)請求,則該CGI程序的(de)代碼在内存中重複裝載了N次;而對于Servlet,處理(lǐ)請求的(de)是N個(gè)線程,隻需要一份Servlet類代碼。在性能(néng)優化方面,Servlet也(yě)比CGI有(yǒu)著(zhe)更多的(de)選擇,比如(rú)緩沖以前的(de)計(jì)算結果,保持數據庫連接的(de)活動,等等。
方便。Servlet提供了大(dà)量的(de)實用(yòng)工(gōng)具例程,例如(rú)自動地(dì)解析和(hé)解碼HTML表單數據、讀(dú)取和(hé)設置HTTP頭、處理(lǐ)Cookie、跟蹤會(huì)話(huà)狀态等。
功能(néng)強大(dà)。在Servlet中,許多使用(yòng)傳統CGI程序很難完成的(de)任務都(dōu)可(kě)以輕松地(dì)完成。例如(rú),Servlet能(néng)夠直接和(hé)Web服務器(qì)交互,而普通的(de)CGI程序不能(néng)。Servlet還能(néng)夠在各個(gè)程序之間共享數據,使得數據庫連接池之類的(de)功能(néng)很容易實現。
可(kě)移植性好。Servlet用(yòng)Java編寫,Servlet API具有(yǒu)完善的(de)标準。因此,爲I-Planet Enterprise Server寫的(de)Servlet無需任何實質上(shàng)的(de)改動即可(kě)移植到(dào)Apache、Microsoft IIS或者WebStar。幾乎所有(yǒu)的(de)主流服務器(qì)都(dōu)直接或通過插件(jiàn)支持Servlet。
節省投資。不僅有(yǒu)許多廉價甚至免費的(de)Web服務器(qì)可(kě)供個(gè)人(rén)或小(xiǎo)規模網站使用(yòng),而且對于現有(yǒu)的(de)服務器(qì),如(rú)果它不支持Servlet的(de)話(huà),要加上(shàng)這部分(fēn)功能(néng)也(yě)往往是免費的(de)(或隻需要極少(shǎo)的(de)投資)。
JSP 及其特點
JavaServer Pages(JSP)是一種實現普通靜态HTML和(hé)動态HTML混合編碼的(de)技術(shù),有(yǒu)關JSP基礎概念的(de)說明(míng)請參見《JSP技術(shù)簡介 》。
許多由CGI程序生成的(de)頁面大(dà)部分(fēn)仍舊是靜态HTML,動态内容隻在頁面中有(yǒu)限的(de)幾個(gè)部分(fēn)出現。但(dàn)是包括Servlet在内的(de)大(dà)多數CGI技術(shù)及其變種,總是通過程序生成整個(gè)頁面。JSP使得我們可(kě)以分(fēn)别創建這兩個(gè)部分(fēn)。例如(rú),下面就是一個(gè)簡單的(de)JSP頁面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>歡迎訪問網上(shàng)商店(diàn)</TITLE></HEAD>
<BODY>
<H1>歡迎</H1>
<SMALL>歡迎,
<!-- 首次訪問的(de)用(yòng)戶名字爲"New User" -->
<% out.println(Utils.getUserNameFromCookie(request)); %>
要設置帳号信息,請點擊
<A HREF="pagelist.html">這裏</A></SMALL>
<P>
頁面的(de)其餘内容。.
</BODY></HTML>
下面是JSP 和(hé)其他(tā)類似或相(xiàng)關技術(shù)的(de)一個(gè)簡單比較:
JSP和(hé)Active Server Pages(ASP)相(xiàng)比
Microsoft的(de)ASP是一種和(hé)JSP類似的(de)技術(shù)。JSP和(hé)ASP相(xiàng)比具有(yǒu)兩方面的(de)優點。首先,動态部分(fēn)用(yòng)Java編寫,而不是VB Script或其他(tā)Microsoft語言,不僅功能(néng)更強大(dà)而且更易于使用(yòng)。第二,JSP應用(yòng)可(kě)以移植到(dào)其他(tā)操作系統和(hé)非Microsoft的(de)Web服務器(qì)上(shàng)。
JSP和(hé)純Servlet相(xiàng)比
JSP并沒有(yǒu)增加任何本質上(shàng)不能(néng)用(yòng)Servlet實現的(de)功能(néng)。但(dàn)是,在JSP中編寫靜态HTML更加方便,不必再用(yòng) println語句來輸出每一行(xíng)HTML代碼。更重要的(de)是,借助内容和(hé)外觀的(de)分(fēn)離(lí),頁面制(zhì)作中不同性質的(de)任務可(kě)以方便地(dì)分(fēn)開(kāi):比如(rú),由頁面設計(jì)專家進行(xíng)HTML設計(jì),同時留出供Servlet程序員插入動态内容的(de)空間。
JSP和(hé)服務器(qì)端包含(Server-Side Include,SSI)相(xiàng)比
SSI是一種受到(dào)廣泛支持的(de)在靜态HTML中引入外部代碼的(de)技術(shù)。JSP在這方面的(de)支持更爲完善,因爲它可(kě)以用(yòng)Servlet而不是獨立的(de)程序來生成動态内容。另外,SSI實際上(shàng)隻用(yòng)于簡單的(de)包含,而不是面向那些能(néng)夠處理(lǐ)表單數據、訪問數據庫的(de)“真正的(de)”程序。
JSP和(hé)JavaScript相(xiàng)比
JavaScript能(néng)夠在客戶端動态地(dì)生成HTML。雖然JavaScript很有(yǒu)用(yòng),但(dàn)它隻能(néng)處理(lǐ)以客戶端環境爲基礎的(de)動态信息。除了Cookie之外,HTTP狀态和(hé)表單提交數據對JavaScript來說都(dōu)是不可(kě)用(yòng)的(de)。另外,由于是在客戶端運行(xíng),JavaScript不能(néng)訪問服務器(qì)端資源,比如(rú)數據庫、目錄信息等等。
深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04
咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967