Servlet(Server Applet)是Java Servlet的簡(jiǎn)稱伤哺,稱為小服務(wù)程序或服務(wù)連接器协饲,用Java編寫(xiě)的服務(wù)器端程序瓢颅,主要功能在于交互式地瀏覽和修改數(shù)據(jù)碘饼,生成動(dòng)態(tài)Web內(nèi)容熙兔。
狹義的Servlet是指Java語(yǔ)言實(shí)現(xiàn)的一個(gè)接口悲伶,廣義的Servlet是指任何實(shí)現(xiàn)了這個(gè)Servlet接口的類(lèi),一般情況下住涉,人們將Servlet理解為后者麸锉。Servlet運(yùn)行于支持Java的應(yīng)用服務(wù)器中。從原理上講舆声,Servlet可以響應(yīng)任何類(lèi)型的請(qǐng)求花沉,但絕大多數(shù)情況下Servlet只用來(lái)擴(kuò)展基于HTTP協(xié)議的Web服務(wù)器。
最早支持Servlet標(biāo)準(zhǔn)的是JavaSoft的Java Web Server媳握,此后碱屁,一些其它的基于Java的Web服務(wù)器開(kāi)始支持標(biāo)準(zhǔn)的Servlet。
Servlet 是在服務(wù)器上運(yùn)行的小程序蛾找。這個(gè)詞是在 Java?applet的環(huán)境中創(chuàng)造的娩脾,Java applet 是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行打毛,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)柿赊。
服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問(wèn)數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口(Common?Gateway?Interface,CGI)應(yīng)用程序完成的乃沙。然而,在服務(wù)器上運(yùn)行 Java胰挑,這種程序可使用 Java 編程語(yǔ)言實(shí)現(xiàn)。在通信量大的服務(wù)器上椿肩,JavaServlet 的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于 CGI 程序瞻颂。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無(wú)需創(chuàng)建單獨(dú)的進(jìn)程覆旱,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開(kāi)銷(xiāo)將明顯降低蘸朋。
實(shí)現(xiàn)過(guò)程
最早支持 Servlet 技術(shù)的是 JavaSoft 的 Java Web Server。此后扣唱,一些其它的基于 Java 的 Web Server 開(kāi)始支持標(biāo)準(zhǔn)的 Servlet API。Servlet 的主要功能在于交互式地瀏覽和修改數(shù)據(jù)团南,生成動(dòng)態(tài) Web 內(nèi)容噪沙。這個(gè)過(guò)程為:
客戶端發(fā)送請(qǐng)求至服務(wù)器端;
服務(wù)器將請(qǐng)求信息發(fā)送至 Servlet吐根;
Servlet 生成響應(yīng)內(nèi)容并將其傳給服務(wù)器正歼。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求拷橘;
服務(wù)器將響應(yīng)返回給客戶端局义。
Servlet 看起來(lái)像是通常的 Java 程序喜爷。Servlet 導(dǎo)入特定的屬于 Java Servlet API 的包。因?yàn)槭菍?duì)象字節(jié)碼萄唇,可動(dòng)態(tài)地從網(wǎng)絡(luò)加載檩帐,可以說(shuō) Servlet 對(duì) Server 就如同 Applet對(duì) Client 一樣,但是另萤,由于 Servlet 運(yùn)行于 Server 中湃密,它們并不需要一個(gè)圖形用戶界面。從這個(gè)角度講四敞,Servlet 也被稱為 FacelessObject泛源。
一個(gè) Servlet 就是 Java 編程語(yǔ)言中的一個(gè)類(lèi),它被用來(lái)擴(kuò)展服務(wù)器的性能忿危,服務(wù)器上駐留著可以通過(guò)“請(qǐng)求-響應(yīng)”編程模型來(lái)訪問(wèn)的應(yīng)用程序达箍。雖然 Servlet 可以對(duì)任何類(lèi)型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來(lái)擴(kuò)展 Web 服務(wù)器的應(yīng)用程序铺厨。