Servlet常用介面
public interface Servlet
這個介面是所有Servlet必須直接或間接實現的介面。它定義了以下方法:
init(ServletConfig config) 用於初始化Servlet
destory() 銷毀Servlet
getServletInfo() 獲得Servlet的資訊
getServletConfig() 獲得Servlet配置相關資訊
service(ServletRequest req,ServletResponse res) 運行應用程式邏輯的進入點。
public abstract class GenericServlet implements Servlet,ServletConfig,java.io.Serializable GenericServlet提供了對Servlet介面的基本實現。它是一個抽象類別,它的service()方法是一個抽象的方法,GenericServlet的衍生類別必須直接或間接實現這個方法。
public abstract class HttpServlet extends GenericServlet implements java.io.Serializable HttpServlet類是針對使用HTTP協議的WEB伺服器的Servlet類。HttpServlet類通過執行Servlet介面,能夠提供HTTP協議的功能。
HttpServlet的子類必須實現以下方法中的一個。
doGet 如果Servlet支援HTTP GET請求,用於HTTP GET請求。
doPost 如果Servlet支援HTTP POST請求,用於HTTP POST請求。
doPut 如果Servlet支援HTTP PUT請求,用於 HTTP PUT請求。
doDelete 如果Servlet支援HTTP DELETE請求,用於HTTP DELETE請求。
init和destory 管理Servlet佔用的資源。如果需要管理Servlet生命週期內所持有資源,可以重載這二個方法
getServletInfo 獲得Servlet自身的資訊。
javax.servlet.ServletConfig
該介面代表了Servlet的配置。主要有以下方法
getInitParameter(String name) 返回特定名字的初始化參數。
例子程式:
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.jspdev.ch7.HelloWorldServlet</servlet-class>
<init-param>
<param-name>USER</param-name>
<param-value>bn</param-value>
</init-param>
</servlet>
在客戶程式中使用如下:
String getParam = getIbitParameter("USER");
可以得到bn
getInitParameterNames() 返回所有的初始化參數的名字。
getServletContext() 返回Servlet的內容物件的引用。
Servlet異常相關
public class ServletException extends Exception
它包含幾個構造方法和一個獲得異常原因的方法,這個方法如下:
getRootCause() 返回造成這個ServletException的原因
public class UnavailableException extends ServletException
當Servlet或者 Filter暫時或者永遠不能使用時,就會招聘這個異常。
請求和響應相關
HttpServletRequest
聲明:public interface HttpServletRequest
這個介面 中最常用的方法就是獲得請求中的參數 。下面以JSP我在jsp常用內建對象
該內建對象是HttpServletRequest的一個執行個體。
getCookies() 獲得用戶端發送的Cookie。返回一個數組,該數組包含這個請求中當前的所有 Cookie。如果這個請求中沒有 Cookie,返回 一個空數組。
getSession() 返回和用戶端關聯的Session。如果沒有,則為空白。
getSession(boolean create) 和上一個方法類似,不過,如果沒有給用戶端分配Session,則會建立一個新的Session並返回。
getParameter(String name) 獲得請求中指定參數的值,如果沒有,則返回空
getParameterValues(String name) 返回請求中名為name的參數值,這個值往往是checkbox或者select控制項提交的,獲得的值是一個String數組!
public interface HttpServletResponse extends ServletResponse
它代表了對用戶端的HTTP響應,主要有以下方法
addCookie(Cookie cookie) 在響應中添加一個Cookie
encodeURL(String url) 使用 URL和一個SessionId重寫這個URL。
sendRedirect(String lication) 把響應送到另一個頁面 或Servlet進行處理
setContentType(String type) 設定響應的MIME類型
setCharacterEncoding(String charset) 設定響應的字元編碼
會話跟蹤
HttpSession
public interface HttpSeesion
常用以下方法
getCreateTime() 返回session的建立時間,最小單位這千分之一秒
getId() 返回唯一的標識,每個session的ID是不同的
getLastAccessedTime()返回和當前session對象相關的用戶端最後發送的請求時間
getMaxInactiveInterval() 返回決時間,負值表示session永遠不會到期。它的值為session的存留時間
getValue(String name) 返回指定的Session上的對象。如果不存在返回空
getValueNames() 以一個數組返回綁定到Session上的所有資料的名稱 。
invalidate();public void invalidate() 這個方法 會終止這個Session。所有綁定到這個Session上的資料都會被清除。
putValue(String name ,Object value) 以給定名字綁定給定的對象到Session中,如果已經存在會覆蓋。這時會調用HttpSessionBindingListener介面的valueBound方法。
removeValue(String name) 取消綁定
setMaxInactiveInterval(Int interval) 設定一個秒數,這個秒數表示用戶端在不發送請求時,Session被 Servlet引擎維持的最長時間。
Servlet上下文
ServletContext
public interface ServletContext
在伺服器上使用 session對象維持與單個客戶相關的狀態,而當為多個使用者的WEB應用維持一個狀態時,則就使用 Servlet環境(Context)。以下是常用方法
getAttribute(String name) 獲得ServletContext中名稱為name的屬性
getContext(String uripath) 返回給定的URIPATH的應用的Servlet上下文,
如 ServletContext test = getContext("/test");
removeAttribute(String name) 刪除名字為name的屬性
setAttribute(String name,Object obj) 在ServletContext中設定一個屬性
Servlet協作
Servlet協作是RequestDispatcher介面,它可以把一個請求轉寄到另一個Servlet。
public interface RequestDispatcher
主要有二方法
forward(ServletRequest,ServletResponse response) 把請求轉寄到伺服器上的另一個資源
include(ServletRequest,ServletResponse response) 把伺服器上的另一個資源套件含到響應中
過濾
Filter
public interface Filter
它是Filter必須 實現的介面,包含以下方法。
init(FilterConfig filterConfig) 初始化Filter
doFilter(ServletRequest,ServletResponse response,FilterChain chain) Filter的業務方法就在這裡實現 。
destory() 釋放Filter佔用的資源 。
FilterChain
public interface FilterChain
它是代碼的過濾鏈,通過這個介面把過濾的任務在不同的Filter之間轉移
方法:
doFilter(ServletRequest,ServletResponse response)
通過這個方法來調用下一個Filter。如果沒有下一個,則調用 目標資源
FilterConfig
public interfacr FilterConfig
它代表了Filter的配置。和Servlet一樣,Filter也有一些配置資訊。方法:
getFilterName()返回Filter的名字 。
getInitParameter(String name) 獲得名稱為name的初始化對數
getServletContext() 返回這個Filter所在的Servlet內容物件。
getInitParameterNames() 獲得Filter配置中的所有初始化參數的名字。