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