(一)Servlet 簡介

Servlet技術是jsp技術的基礎。java

Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是做爲來自 Web 瀏覽器或其餘 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。web

1、Servlet的核心類和接口數據庫

在javaEE規範中,每一個與Servlet有關的類或接口都與Servlet的狀態有必定關係。而Servlet API有兩個軟件包:瀏覽器

1.javax.servlet包:定義了全部的Servlet類都必須實現或擴展的通用接口和類,主要提供了Web容器可以使用的Servlet基本類和接口。
2.javax.servlet.http包:定義了採用HTTP協議通訊的HttpServlet類,包括和Http協議相關的Servlet類和接口。服務器

2、Servlet生命週期網絡

Servlet程序自己不是直接在Java虛擬機上運行的,它須要Web容器程序控制其載入和運行過程。Web容器控制整個Servlet的生命週期。併發

Servlet 生命週期可被定義爲從建立直到毀滅的整個過程。如下是 Servlet 遵循的過程:jsp

1.加載和實例化Servletspa

Web容器在如下狀況下加載和實例化Servlet線程

(1)某些Servlet在配置文件web.xml中有設置<load-on-startup>且值不爲負數時,則在Web容器啓動時自動加載。

(2)Web容器啓動後,Servlet首次收到客戶請求。

(3)Servlet類文件被更新後,從新裝載Servlet

『load-on-startup 元素在web應用啓動的時候指定了servlet被加載的順序,若是配置了大於等於0 ,容器在配置的時候就加載並初始化這個servlet,優先級是根據load-on-startup 的值來定的,值小的優先級比較高 』

 

2.初始化Servlet

當 Servlet被 實例化後, Web容器將調用每一個Servlet的init()方法來初始化 Servlet 實例。

『init()方法對於每一個Servlet只能被調用一次』

3.處理Web請求

每次服務器接收到一個 Servlet 請求時,經過建立特定於請求的一個「請求」對象和一個「響應」對象並調用service()方法,service() 方法檢查 HTTP 請求類型(GET、POST、PUT、DELETE 等),並在適當的時候調用 doGet、doPost、doPut,doDelete 等方法。

在Servlet對象的生命週期中,service()方法可能屢次被調用。當網絡中不一樣主機(客戶端)併發訪問服務器中的同一資源,服務器將開設多個線程處理不一樣的請求。

4.終止服務

當Web容器須要在終止Servlet時,將會調用destroy() 方法使Servlet中止服務並將其清除,由 JVM 的垃圾回收器進行垃圾回收的。

相關文章
相關標籤/搜索