在編寫Servlet 時需要用到兩個用于所有 Servlet 的基本軟件包:javax.servlet 和 javax.servlet.http。下面主要介紹javax.servlet.http提供的HTTP Servlet應(yīng)用編程接口。
首先介紹一下Java Servlet的基本方法。
init() 方法
在Servlet的生命周期中,僅執(zhí)行一次 init() 方法,即在服務(wù)器裝入Servlet時執(zhí)行。通過配置服務(wù)器,可以設(shè)定在啟動服務(wù)器或客戶機首次訪問Servlet 時裝入Servlet。無論有多少客戶機訪問Servlet,都不會重復(fù)執(zhí)行 init()。
service() 方法
service()方法是Servlet的主體部分??蛻魧σ粋€HttpServlet對象的每次請求都會調(diào)用該對象的service() 方法,并傳遞給這個方法一個"請求"對象和一個"響應(yīng)"對象作為參數(shù)。"請求"對象提供有關(guān)請求的信息,而"響應(yīng)"對象提供了一個將響應(yīng)信息返回給瀏覽器的通信途徑。javax.servlet 軟件包中的相關(guān)類為ServletRequest和ServletResponse,而javax.servlet.http 軟件包中的相關(guān)類為HttpServletRequest 和 HttpServletResponse。Servlet 通過這些對象與服務(wù)器通信并最終與客戶機通信。Servlet 能通過調(diào)用"請求"對象的方法獲知客戶機環(huán)境、服務(wù)器環(huán)境的信息和所有由客戶機提供的信息;通過調(diào)用"響應(yīng)"對象的方法,Servlet可以向客戶機發(fā)送響應(yīng)。
HttpServlet中的service()方法默認的服務(wù)功能是調(diào)用與 HTTP 請求的方法相應(yīng)的 do 功能。例如,如果 HTTP 請求方法為 GET,則默認情況下就調(diào)用 doGet()。當一個客戶通過HTML表單發(fā)出一個HTTP POST請求時,doPost()方法被調(diào)用。與POST請求相關(guān)的參數(shù)作為一個單獨的HTTP 請求從瀏覽器發(fā)送到服務(wù)器。當需要修改服務(wù)器端的數(shù)據(jù)時,應(yīng)該使用doPost()方法。
Servlet的響應(yīng)可以是下列幾種類型:
·一個輸出流,瀏覽器根據(jù)它的內(nèi)容類型(如text/HTML)進行解釋。
·一個HTTP錯誤響應(yīng),重定向到另一個URL、Servlet和JSP。
destroy() 方法
destroy() 方法僅執(zhí)行一次,即在服務(wù)器停止且卸載Servlet 時執(zhí)行該方法。當服務(wù)器卸載 Servlet 時,將在所有 service() 方法調(diào)用完成后,或在指定的時間間隔過后調(diào)用 destroy() 方法。一個Servlet 在運行service() 方法時可能會產(chǎn)生其他的線程,因此在調(diào)用 destroy() 方法時,必須確認這些線程已終止或完成。
GetServletConfig()方法
GetServletConfig()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數(shù)和ServletContext。ServletContext 接口提供有關(guān)Servlet 的環(huán)境信息。
GetServletInfo()方法
GetServletInfo()方法是一個可選的方法,它提供有關(guān)Servlet 的信息,如作者、版本、版權(quán)。
首先介紹一下Java Servlet的基本方法。
init() 方法
在Servlet的生命周期中,僅執(zhí)行一次 init() 方法,即在服務(wù)器裝入Servlet時執(zhí)行。通過配置服務(wù)器,可以設(shè)定在啟動服務(wù)器或客戶機首次訪問Servlet 時裝入Servlet。無論有多少客戶機訪問Servlet,都不會重復(fù)執(zhí)行 init()。
service() 方法
service()方法是Servlet的主體部分??蛻魧σ粋€HttpServlet對象的每次請求都會調(diào)用該對象的service() 方法,并傳遞給這個方法一個"請求"對象和一個"響應(yīng)"對象作為參數(shù)。"請求"對象提供有關(guān)請求的信息,而"響應(yīng)"對象提供了一個將響應(yīng)信息返回給瀏覽器的通信途徑。javax.servlet 軟件包中的相關(guān)類為ServletRequest和ServletResponse,而javax.servlet.http 軟件包中的相關(guān)類為HttpServletRequest 和 HttpServletResponse。Servlet 通過這些對象與服務(wù)器通信并最終與客戶機通信。Servlet 能通過調(diào)用"請求"對象的方法獲知客戶機環(huán)境、服務(wù)器環(huán)境的信息和所有由客戶機提供的信息;通過調(diào)用"響應(yīng)"對象的方法,Servlet可以向客戶機發(fā)送響應(yīng)。
HttpServlet中的service()方法默認的服務(wù)功能是調(diào)用與 HTTP 請求的方法相應(yīng)的 do 功能。例如,如果 HTTP 請求方法為 GET,則默認情況下就調(diào)用 doGet()。當一個客戶通過HTML表單發(fā)出一個HTTP POST請求時,doPost()方法被調(diào)用。與POST請求相關(guān)的參數(shù)作為一個單獨的HTTP 請求從瀏覽器發(fā)送到服務(wù)器。當需要修改服務(wù)器端的數(shù)據(jù)時,應(yīng)該使用doPost()方法。
Servlet的響應(yīng)可以是下列幾種類型:
·一個輸出流,瀏覽器根據(jù)它的內(nèi)容類型(如text/HTML)進行解釋。
·一個HTTP錯誤響應(yīng),重定向到另一個URL、Servlet和JSP。
destroy() 方法
destroy() 方法僅執(zhí)行一次,即在服務(wù)器停止且卸載Servlet 時執(zhí)行該方法。當服務(wù)器卸載 Servlet 時,將在所有 service() 方法調(diào)用完成后,或在指定的時間間隔過后調(diào)用 destroy() 方法。一個Servlet 在運行service() 方法時可能會產(chǎn)生其他的線程,因此在調(diào)用 destroy() 方法時,必須確認這些線程已終止或完成。
GetServletConfig()方法
GetServletConfig()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數(shù)和ServletContext。ServletContext 接口提供有關(guān)Servlet 的環(huán)境信息。
GetServletInfo()方法
GetServletInfo()方法是一個可選的方法,它提供有關(guān)Servlet 的信息,如作者、版本、版權(quán)。

