|
對于一個(gè)Java人員來說,Servlet知識很重要,不僅企業(yè)面試時(shí)會問,在日常的項(xiàng)目中也有著舉足輕重的作用。接下來的鄭州Java學(xué)習(xí)進(jìn)階課,小編就給大家簡單匯總Servlet入門知識。 Servlet是什么? Servlet是基于Java技術(shù)的Web組件,由容器管理并產(chǎn)生動(dòng)態(tài)的內(nèi)容。Servlet與客戶端通過Servlet容器實(shí)現(xiàn)的請求/響應(yīng)模型進(jìn)行交互。注意:Servlet不是從命令行啟動(dòng)的,而是由包含Java虛擬機(jī)的Web服務(wù)器進(jìn)行加載。 Servlet的特點(diǎn)是什么? 1)高效。在服務(wù)器上僅有一個(gè)Java虛擬機(jī)在運(yùn)行,它的優(yōu)勢在于當(dāng)多個(gè)來自客戶端的請求進(jìn)行訪問時(shí),Servlet為每個(gè)請求分配一個(gè)線程而不是進(jìn)程。 2)方便。Servlet提供了大量的實(shí)用工具例程,例如處理很難完成的HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie和跟蹤會話等。 3)跨平臺。Servlet是用Java類編寫的,它可以在不同的操作系統(tǒng)平臺和不同的應(yīng)用服務(wù)器平臺下運(yùn)行。 4)靈活性和可擴(kuò)展性。采用Servlet開發(fā)的Web應(yīng)用程序,由于Java類的繼承性、構(gòu)造函數(shù)等特點(diǎn),使得其應(yīng)用靈活,可隨意擴(kuò)展。 5)共享數(shù)據(jù)。Servlet之間通過共享數(shù)據(jù)可以很容易地實(shí)現(xiàn)數(shù)據(jù)庫連接池。它能方便地實(shí)現(xiàn)管理用戶請求,簡化Session和獲取前一頁面信息的操作。 6)安全。有些CGI版本有明顯的安全弱點(diǎn)。即使是使用最新的標(biāo)準(zhǔn)和PERL等語言,系統(tǒng)也沒有基本安全框架。而Java定義有完整的安全機(jī)制,包括SSL\CA認(rèn)證、安全政策等規(guī)范。 Servlet的功能是什么? 當(dāng)啟動(dòng)Web服務(wù)器或客戶機(jī)第一次請求服務(wù)時(shí),可以自動(dòng)裝入Servlet,之后,Servlet繼續(xù)運(yùn)行直到其他客戶機(jī)發(fā)出請求。Servlet的功能涉及范圍很廣: 1)創(chuàng)建并返回一個(gè)包含基于客戶請求性質(zhì)的動(dòng)態(tài)內(nèi)容的完整的HTML頁面; 2)創(chuàng)建可嵌入到現(xiàn)有HTML頁面中的一部分HTML頁面(HTML片段); 3)與其他服務(wù)器資源(包括數(shù)據(jù)庫和基于Java的應(yīng)用程序)進(jìn)行通信; 4)用多個(gè)客戶機(jī)處理連接,接收多個(gè)客戶機(jī)的輸入,并將結(jié)果傳遞到多個(gè)客戶機(jī)上,例如,Servlet可以是多參與者的游戲服務(wù)器; 5)當(dāng)允許在單連接方式下傳送數(shù)據(jù)的情況下,在瀏覽器上打開服務(wù)器至applet的新連接,并將該連接保持在打開狀態(tài);當(dāng)允許客戶機(jī)和服務(wù)器簡單、高效地執(zhí)行會話的情況下,applet也可以啟動(dòng)客戶瀏覽器和服務(wù)器之間的連接,可以通過定制協(xié)議進(jìn)行通信; 6)將訂制的處理提供給所有服務(wù)器的標(biāo)準(zhǔn)程序。 Servlet層級關(guān)系: Servlet(接口)-->GenericServlet(抽象類,與協(xié)議無關(guān)的Servlet)-->HttpServlet(抽象類,實(shí)現(xiàn)了Http協(xié)議的Servlet)-->Custom Servlet(自定義的Servlet) Servlet的工作過程: 1)在客戶端對web服務(wù)器發(fā)出請求。 2)web服務(wù)器接收到請求后將其發(fā)送給Servlet。 3)Servlet容器為此產(chǎn)生一個(gè)實(shí)例對象并調(diào)用ServletAPI中相應(yīng)的方法來對客戶端HTTP請求進(jìn)行處理,然后將處理的響應(yīng)結(jié)果返回給WEB服務(wù)器。 4)web服務(wù)器將從Servlet實(shí)例對象中收到的響應(yīng)結(jié)構(gòu)發(fā)送回客戶端。 |
|
|