程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 什麼是Servlet以及Servlet的優越性

什麼是Servlet以及Servlet的優越性

編輯:關於JSP

Servlet是用Java編寫的Server端程序,它與協議和平台無關。Servlet運行於Java-enabled Web Server中。Java Servlet可以動態地擴展Server的能力,並采用請求-響應模式提供Web服務。

最早支持Servlet技術的是JavaSoft的Java Web Server。此後,一些其它的基於Java的Web Server開始支持標准的Servlet API。Servlet的主要功能在於交互式地浏覽和修改數據,生成動態Web內容。這個過程為:

客戶端發送請求至服務器端;

服務器將請求信息發送至Servlet

Servlet生成響應內容並將其傳給Server。響應內容動態生成,通常取決於客戶端的請求

服務器將響應返回給客戶端

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

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卸載時被卸載。

Servlet生命周期:

裝載Servlet。這項操作一般是動態執行的。然而,Server通常會提供一個管理的選項,用於在Server啟動時強制裝載和初始化特定的Servlet。

Server創建一個Servlet的實例

Server調用Servlet的init()方法

一個客戶端的請求到達Server

Server創建一個請求對象

Server創建一個響應對象

Server激活Servlet的service()方法,傳遞請求和響應對象作為參數

service()方法獲得關於請求對象的信息,處理請求,訪問其他資源,獲得需要的信息

service()方法使用響應對象的方法,將響應傳回Server,最終到達客戶端。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程序員自己開發的新的方法

對於更多的客戶端請求,Server創建新的請求和響應對象,仍然激活此Servlet的service()方法,將這兩個對象作為參數傳遞給它。如此重復以上的循環,但無需再次調用init()方法。一般Servlet只初始化一次 ,當Server不再需要Servlet時(一般當Server關閉時),Server調用Servlet的Destroy()方法。

在美國,EJB+Servlet+JSP幾乎成為電子商務的開發標准。本來 ASP 也很有希望,但微軟最近可能把精力都集中在打官司和Win2000上, 因此電子商務發展得太少。PHP由於其模式和一些天生缺陷,毫無希望。 在美國,很少有商業站點用PHP的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved