溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Servlet定義及原理是什么

發(fā)布時間:2021-07-14 15:16:33 來源:億速云 閱讀:224 作者:chen 欄目:編程語言

這篇文章主要介紹“Servlet定義及原理是什么”,在日常操作中,相信很多人在Servlet定義及原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Servlet定義及原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Servlet定義是什么呢?Servlet與Java又是什么關(guān)系呢?Servlet是用Java編寫的Server端程序,它與協(xié)議和平臺無關(guān)。Servlet運行于Java-enabled Web Server中。Java Servlet可以動態(tài)地擴展Server的能力,并采用請求-響應(yīng)模式提供Web服務(wù)。

最早支持Servlet技術(shù)的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server開始支持標準的Servlet API。

一、Servlet定義之Servlet特點

Servlet是Java技術(shù)對CGI編程的回答。Servlet程序在服務(wù)器端運行,動態(tài)地生成Web頁面。與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資(更重要的是, Servlet程序員收入要比Perl程序員高:-)

◆高效

在傳統(tǒng)的CGI中,每個請求都要啟動一個新的進程,如果CGI程序本身的執(zhí)行時間較短,啟動進程所需要的開銷很可能反而超過實際執(zhí)行時間。而在 Servlet中,每個請求由一個輕量級的Java線程處理(而不是重量級的操作系統(tǒng)進程)。在傳統(tǒng)CGI中,如果有N個并發(fā)的對同一CGI程序的請求,則該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對于Servlet,處理請求的是N個線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇,比如緩沖以前的計算結(jié)果,保持數(shù)據(jù)庫連接的活動,等等。

◆方便

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

◆功能強大

在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序不能。Servlet還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實現(xiàn)。

◆可移植性好

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

◆節(jié)省投資

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

二、Servlet定義之Servlet的主要功能

Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。這個過程為:

◆客戶端發(fā)送請求至服務(wù)器端;

◆服務(wù)器將請求信息發(fā)送至Servlet

◆Servlet生成響應(yīng)內(nèi)容并將其傳給Server。響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求

◆服務(wù)器將響應(yīng)返回給客戶端

Servlet看起來像是通常的Java程序。Servlet導(dǎo)入特定的屬于Java Servlet API的包。因為是對象字節(jié)碼,可動態(tài)地從網(wǎng)絡(luò)加載,可以說Servlet對Server就如同Applet對Client一樣,但是,由于 Servlet運行于Server中,它們并不需要一個圖形用戶界面。從這個角度講,Servlet也被稱為Faceless Object。

三、JAVA Servlet的優(yōu)勢

Servlet可以和其他資源(文件、數(shù)據(jù)庫、Applet、Java應(yīng)用程序等)交互,以生成返回給客戶端的響應(yīng)內(nèi)容。如果需要,還可以保存請求-響應(yīng)過程中的信息。

采用Servlet,服務(wù)器可以完全授權(quán)對本地資源的訪問(如數(shù)據(jù)庫),并且Servlet自身將會控制外部用戶的訪問數(shù)量及訪問性質(zhì)

Servlet可以是其它服務(wù)的客戶端程序,例如,它們可以用于分布式的應(yīng)用系統(tǒng)中,可以從本地硬盤,或者通過網(wǎng)絡(luò)從遠端硬盤激活Servlet。

Servlet可被鏈接(chain)。一個Servlet可以調(diào)用另一個或一系列Servlet,即成為它的客戶端。

采用Servlet Tag技術(shù),可以在HTML頁面中動態(tài)調(diào)用Servlet。

Servlet API與協(xié)議無關(guān)。它并不對傳遞它的協(xié)議有任何假設(shè)。

像所有的Java程序一樣,Servlet擁有面向?qū)ο驤ava語言的所有優(yōu)勢

Servlet提供了Java應(yīng)用程序的所有優(yōu)勢——可移植、穩(wěn)健、易開發(fā)。使用Servlet 的Tag技術(shù),Servlet能夠生成嵌于靜態(tài)HTML頁面中的動態(tài)內(nèi)容。

一個Servlet被客戶端發(fā)送的***個請求激活,然后它將繼續(xù)運行于后臺,等待以后的請求。每個請求將生成一個新的線程,而不是一個完整的進程。多個客戶能夠在同一個進程中同時得到服務(wù)。一般來說,Servlet進程只是在Web Server卸載時被卸載。

Servlet定義呢不是一句話就說好的概念,那么很多的都是總結(jié)和歸納,以上就是本文對于Servlet定義的淺析,希望對你有所幫助。

到此,關(guān)于“Servlet定義及原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI