簡介
Servlet是用Java編寫的伺服器端程式。其主要功能在于互動式地浏覽和修改資料,生成動态Web内容。狹義的Servlet是指Java語言實作的一個接口,廣義的Servlet是指任何實作了這個Servlet接口的類,一般情況下,人們将Servlet了解為後者。
Servlet運作于支援Java的應用伺服器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet隻用來擴充基于HTTP協定的Web伺服器。
主要功能
Servlet 的主要功能在于互動式地浏覽和修改資料,生成動态 Web 内容。這個過程為:
1) 用戶端發送請求至伺服器端;
2) 伺服器将請求資訊發送至 Servlet;
3) Servlet 生成響應内容并将其傳給伺服器。響應内容動态生成,通常取決于用戶端的請求;
4) 伺服器将響應傳回給用戶端。
Servlet生命周期
生命全過程:
1) 加載Servlet并執行個體化new
2) 初始化init
3) 處理請求service doGet doPost
4) 退出服務destroy()
注意事項
1) servlet隻執行個體化一次
針對用戶端的多次Servlet請求,通常情況下,伺服器隻會建立一個Servlet執行個體對象,即Servlet執行個體對象一旦建立,它就會駐留在記憶體中,為後續的其他請求服務,直至web容器退出,servlet執行個體對象才會銷毀。
2) init方法隻執行一次
在Servlet的整個生命周期内,Servlet的init方法隻會被調用一次。而對一個Servlet的每次通路請求都導緻Servlet引擎調用一次servlet的service方法。
3) Servlet不是線程安全的
注冊與運作
1) Servlet程式必須通過Servlet引擎來啟動運作,并且儲存目錄有特殊要求,通常需要存儲在<WEB應用程式目錄>\WEB-INF\classes\目錄中。如果這個Servlet程式有包名,那麼在這個目錄下面還要有包名對應的目錄結構。
2) Servlet程式必須在WEB應用程式的web檔案中進行注冊和映射其通路路徑,才可以被Servlet引擎加載和被外界通路。
3) 一個<servlet>元素用于注冊一個Servlet,它包含有兩個主要的子元素:<servlet-name>和<servlet-class>,分别用于設定Servlet的注冊名稱和Servlet的完整類名(包括包名)。
4) 一個<servlet-mapping>元素用于映射一個已注冊的Servlet的一個對外通路路徑,它包含有兩個子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注冊名稱和Servlet的對外通路路徑。
5) 同一個Servlet可以被映射到多個URL上,即多個<servlet-mapping>元素的<servlet-name>子元素的設定值可以是同一個Servlet的注冊名。
小結
網上商城中對servlet有所接觸,但當時并沒有太多講解。繼而到DRP中繼續對Servlet的學習,有了更深一步的研究,但仍是沒有運用到實際應用中,還是有太多欠缺。以上小結隻是停留在理論知識上,還缺少代碼實踐。接下來就是繼續其在代碼中的應用,實踐研究!