java servlet

servlet是用java編寫的服務端程序。主要功能在於交互式瀏覽和修改數據,生成動態web內容。狹義是值java語言實現的一個藉口,廣義是指任何實現這個servlet接口的類。


servlet運行於支持java的應用服務器中。從實現上講,servlet可以響應任何類型的請求,但絕大多數情況下servlet只用來擴展基於http協議的web服務器。


工作模式

客戶端發送請求至服務器,服務器啓動並調用servlet,servlet根據客戶端請求生成響應內容並將其傳給服務器,服務器將響應返回客戶端。


通用servlet

servlet由javax.servlet.GenericServlet實現servlet接口。程序設計人員可以通過使用或繼承這個類來實現servlet應用


httpservlet

javax.servlet.http.HttpServlet實現了專門用於響應HTTP請求的servlet,提供了響應請求的doGet()和doPost()方法


生命週期

當servlet被部署在應用服務器中(應用服務器用於管理java組件的部分被抽象成爲容器)以後,由容器控制servlet的生命週期。除非特殊制定,否則在容器啓動的時候

servlet是不會被加載的,servlet只會在第一次請求的時候被加載和實例化。servlet一旦被加載,一般不會從容器中刪除,直到應用服務器關閉或重新啓動。但當容器做內存回收動作時,servlet有可能被刪除。正因爲這個原因,第一次訪問servlet所以的時間要大大多於以後訪問所用的時間。

servlet 1.加載-》2.初始化-》調用-》銷燬


與jsp的關係

java服務器頁面(jsp)是HttpServlet的擴展。由於HttpServlet大多是用來響應HTTP請求,並返回web頁面(例如HTML/XML),所以不可避免地,在編寫servlet時會涉及到大量的HTML內容,這給servlet的書寫效率和可讀性帶了了很大障礙,jsp便是在這個基礎上產生的。其功能是使用HTML的書寫格式,在適當的地方加入java代碼片段,將程序從複雜的HTML中解放出來,更專注與servlet本身的內容。

JSP在首次被訪問的時候被應用服務器轉換爲servlet,在以後的運行中,容器直接調用這個servlet,而不再訪問JSP頁面。JSP的實質仍然是servlet。



java servlet優勢

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

採用Servlet,服務器可以完全授權對本地資源的訪問(如數據庫),並且Servlet自身將會控制外部用戶的訪問數量及訪問性質

Servlet可以是其它服務的客戶端程序,例如,它們可以用於分佈式的應用系統中,可以從本地硬盤,或者通過網絡從遠端硬盤激活Servlet。

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

採用Servlet Tag技術,可以在HTML頁面中動態調用Servlet。

Servlet API與協議無關。它並不對傳遞它的協議有任何假設。

像所有的Java程序一樣,Servlet擁有面向對象Java語言的所有優勢

Servlet提供了Java應用程序的所有優勢——可移植、穩健、易開發。使用Servlet 的Tag技術,Servlet能夠生成嵌於靜態HTML頁面中的動態內容。

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


發佈了96 篇原創文章 · 獲贊 17 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章