?
/* *作者:呆萌老師 *?csdn認證講師 *?51cto高級講師 *?騰訊課堂認證講師 *?網易云課堂認證講師 *?華為開發者學堂認證講師 *?愛奇藝千人名師計劃成員 *在這里給大家分享技術、知識和生活 *各種干貨,記得關注哦! *vx:it_daimeng */
- Servlet
1、servlet與servlet容器
Java Servlet(Java服務器小程式)是一個基于Java技術的Web組件,運行在服務器端,它由Servlet容器所管理,用于生成動態的內容, Servlet是平臺獨立的Java類,撰寫一個Servlet,實際上就是按照Servlet規范撰寫一個Java類,Servlet被編譯為平臺獨立 的位元組碼,可以被動態地加載到支持Java技術的Web服務器中運行,
Servlet容器也叫做Servlet引擎,Servlet沒有main方法,不能獨立運行,它必須被部署到Servlet容器中,由容器來實體化和呼叫 Servlet的方法(如doGet()和doPost()),Servlet容器在Servlet的生命周期內包容和管理Servlet,在JSP技術 推出后,管理和運行Servlet/JSP的容器也稱為Web容器,
用戶通過單擊某個鏈接或者直接在瀏覽器的地址欄中輸入URL來訪問Servlet,Web服務器接收到該請求后,并不是將 請求直接交給Servlet,而是交給Servlet容器,Servlet容器實體化Servlet,呼叫Servlet的一個特定方法對請求進行處理, 并產生一個回應,這個回應由Servlet容器回傳給Web服務器,Web服務器包裝這個回應,以HTTP回應的形式發送給Web瀏覽器,
Tomcat服務器接受客戶請求并做出回應的程序如下:
- 客戶端(通常都是瀏覽器)訪問Web服務器,發送HTTP請求,
2)Web服務器接收到請求后,傳遞給Servlet容器,
3)Servlet容器加載Servlet,產生Servlet實體后,向其傳遞表示請求和回應的物件,
4)Servlet實體使用請求物件得到客戶端的請求資訊,然后進行相應的處理,
5)Servlet實體將處理結果通過回應物件發送回客戶端,容器負責確保回應正確送出,同時將控制回傳給Web服務器,
2、servlet生命周期
現在讓我們詳細討論生命周期的方法,
init() 方法
Servlet的init方法在一個生命周期中只被執行一次,呼叫service方法前,初始化必須完成;它在第一次創建 Servlet 時被呼叫,在后續每次用戶請求時不再呼叫,因此,它是用于一次性初始化,就像 Applet 的 init 方法一樣,
init 方法的定義如下:
public void init() throws ServletException {
// 初始化代碼...}
service() 方法
service() 方法是執行實際任務的主要方法,Servlet 容器 呼叫 service() 方法來處理來自客戶端(瀏覽器)的請求,并把格式化的回應寫回給客戶端,
每次服務器接收到一個 Servlet 請求時,服務器會產生一個新的執行緒并呼叫服務,service() 方法檢查 HTTP 請求型別(GET、POST、PUT、DELETE 等),并在適當的時候呼叫 doGet、doPost、doPut,doDelete 等方法,
下面是該方法的特征:
public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{}
所以,您不用對 service() 方法做任何動作,您只需要根據來自客戶端的請求型別來重寫 doGet() 或 doPost() 即可,
doGet() 和 doPost() 方法是每次服務請求中最常用的方法,下面是這兩種方法的特征,
doGet() 方法
GET 請求來自于一個 URL 的正常請求,或者來自于一個未指定 METHOD 的 HTML 表單,它由 doGet() 方法處理,
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代碼
}
doPost() 方法
POST 請求來自于一個特別指定了 METHOD 為 POST 的 HTML 表單,它由 doPost() 方法處理,
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代碼
}
destroy() 方法
destroy() 方法只會被呼叫一次,在 Servlet 生命周期結束時被呼叫,destroy() 方法可以讓您的 Servlet 關閉資料庫連接、停止后臺執行緒、把 Cookie 串列或點擊計數器寫入到磁盤,并執行其他類似的清理活動,
在呼叫 destroy() 方法之后,servlet 物件被標記為垃圾回收,destroy 方法定義如下所示:
public void destroy() {
// 終止化代碼...
}
Servlet 生命周期可被定義為從創建直到毀滅的整個程序,以下是 Servlet 遵循的程序:
Servlet類加載
Servlet 通過呼叫 init () 方法進行初始化,
Servlet 呼叫 service() 方法來處理客戶端的請求,來選擇呼叫doGet還是doPost方法,
Servlet 通過呼叫 destroy() 方法終止(結束),
最后,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的,
架構圖
下圖顯示了一個典型的 Servlet 生命周期方案,
- 第一個到達服務器的 HTTP 請求被委派到 Servlet 容器,
- Servlet 容器加載 Servlet,創建物件和初始化,然后呼叫 service() ,
- 然后 Servlet 容器處理由多個請求產生的多個執行緒,每個執行緒執行一個單一的 Servlet 實體的 service() 方法,

?
- JSP
JSP全名為Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計.
JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言的子集)檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案,后綴名為(*.jsp), 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其他作業系統上運行,
它實作了Html語法中的java擴展(以 <%, %>形式),JSP與Servlet一樣,是在服務器端執行的,通常回傳給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽,
Java Servlet是JSP的技識訓礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成,JSP具備了Java技術的簡單易用,完全的面向物件,具有平臺無關性且安全可靠,主要面向因特網的所有特點,
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/501889.html
標籤:其他
上一篇:15:銀行利息
