日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java Servlet API中文说明文档

發(fā)布時間:2023/12/9 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Servlet API中文说明文档 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java Servlet API中文說明文檔

目 錄

1.... Servet資料

1.1????? 緒言

1.2????? 誰需要讀這份文檔

1.3????? Java Servlet API的組成

1.4????? 有關(guān)規(guī)范

1.5????? 有關(guān)Java Servlets

1.6????? Java Servlet概論

1.7????? Servlet的生命周期

1.8????? Servlet的解析和載入

1.9????? Servlet的初始化

1.10??? Servlet處理請求

1.11 ? ?多線程和映射

1.12??? Servlet的卸載

1.13??? Servlet映射技術(shù)

1.14 ? ?通過類名調(diào)用Servlet

1.15??? Servlet環(huán)境

1.16??? HTTP會話

1.17 ? ?建立Session

2.... API介紹

2.1????? Request Dispatcher接口

2.2????? Servlet接口

2.3????? ServletConfig接口

2.4????? ServletContext接口

2.5????? ServletRequest接口

2.6????? ServletResponse接口

2.7????? SingleThreadModel接口

2.8????? GenericServlet類

2.9????? ServletInputStream類

2.10??? ServletOutputStream類

2.11??? ServletException類

2.12??? UnavailableException類

2.13??? HttpServletRequest接口

2.14??? HttpServletResponse接口

2.15??? HttpSession接口

2.16??? HttpSessionBindingListener接口

2.17??? HttpSessionContext接口

2.18??? Cookie類

2.19??? HttpServlet類

2.20??? HttpSessionBindingEvent類

2.21??? HttpUtils類

?

1 ?Servet資料

1.1??? 緒言

??? 這是一份關(guān)于2.1版Java Servlet API的說明文檔,作為對這本文檔的補(bǔ)充,你可以到http://java.sun.com/products/servlet/index.html下面下載Javadoc格式的文檔。

1.2??? 誰需要讀這份文檔

??? 這份文檔描述了Java Servlet API的最新版本2.1版。所以,這本書對于Servlet的開發(fā)者及servlet引擎的開發(fā)者同樣適用。

1.3??? Java Servlet API的組成

??? Java Servlet API由兩個軟件包組成:一個是對應(yīng)HTTP的軟件包,另一個是不對應(yīng)HTTP的通用的軟件包。這兩個軟件包的同時存在使得Java Servlet API能夠適應(yīng)將來的其他請求-響應(yīng)的協(xié)議。

??? 這份文檔以及剛才提及的Javadoc格式的文檔都描述了這兩個軟件包,Javadoc格式的文檔還描述了你應(yīng)該如何使用這兩個軟件包中的所有方法。

1.4??? 有關(guān)規(guī)范

??? 你也許對下面的這些Internet規(guī)范感興趣,這些規(guī)范將直接影響到Servlet API的發(fā)展和執(zhí)行。

你可以從http: //info.internet.isi.edu/7c/in-notes/rfc/.cache 找到下面提到的所有這些RFC規(guī)范。

?????? RFC 1738 統(tǒng)一資源定位器(URL)

?????? RFC 1808 相關(guān)統(tǒng)一資源定位器

?????? RFC 1945 超文本傳輸協(xié)議--HTTP/1.0

?????? RFC 2045 多用途Internet郵件擴(kuò)展(多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME))第一部分:Internet信息體格式

?????? RFC 2046 多用途Internet郵件擴(kuò)展(多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME))第二部分:媒體類型

?????? RFC 2047 多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME)(多用途Internet郵件擴(kuò)展)第三部分:信息標(biāo)題擴(kuò)展用于非ASCII文本

?????? RFC 2048 多用途Internet郵件擴(kuò)展(多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME))第四部分: 注冊步驟

?????? RFC 2049 多用途Internet郵件擴(kuò)展(多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME))第五部分:一致性標(biāo)準(zhǔn)和例子

?????? RFC 2068 超文本傳輸協(xié)議 -- HTTP/1.1

?????? RFC 2069 一個擴(kuò)展HTTP:摘要訪問鑒定

?????? RFC 2109 HTTP狀態(tài)管理機(jī)制

?????? RFC 2145 HTTP 版本號的使用和解釋

?????? RFC 2324 超文本Coffee Pot控制協(xié)議 (HTCPCP/1.0)

?????? 萬維網(wǎng)協(xié)會(http://www.w3.org)管理著這些協(xié)議的規(guī)范和執(zhí)行。

1.5??? 有關(guān)Java Servlets

??? JavaTM servlets 是一個不受平臺約束的Java小程序,它可以被用來通過多種方法擴(kuò)充一個Web服務(wù)器的功能。你可以把Servlet理解成Server上的 applets,它被編譯成字節(jié)碼,這樣它就可以被動態(tài)地載入并用效地擴(kuò)展主機(jī)的處理能力。

??? Servlet與applets不同的地方是,它不運(yùn)行在Web瀏覽器或其他圖形化的用戶界面上。Servlet通過servlet引擎運(yùn)行在Web服務(wù)器中,以執(zhí)行請求和響應(yīng),請求、響應(yīng)的典型范例是HTTP協(xié)議。

??? 一個客戶端程序,可以是一個Web瀏覽器,或者是非其他的可以連接上Internet的程序,它會訪問Web服務(wù)器并發(fā)出請求。這個請求被運(yùn)行在Web服 務(wù)器上的Servlet引擎處理,并返回響應(yīng)到Servlet。Servlet通過HTTP將這個響應(yīng)轉(zhuǎn)發(fā)到客戶端。

在功能上,Servlet與CGI、NSAPI有點(diǎn)類似,但是,與他們不同的是:Servlet具有平臺無關(guān)性

1.6??? Java Servlet概論

????? ?Servlet與其他普通的server擴(kuò)展機(jī)制有以下進(jìn)步:

?????? 因?yàn)樗捎昧瞬煌倪M(jìn)程處理模式,所以它比CGI更快。

?????? 它使用了許多Web服務(wù)器都支持的標(biāo)準(zhǔn)的API。

?????? 它繼承了Java的所有優(yōu)勢,包括易升級以及平臺無關(guān)性。

?????? 它可以調(diào)用Java所提供的大量的API的功能模塊。

?????? 這份文檔說明了Java Servlet API的類和接口的方法。有關(guān)更多的信息,請參看下面的API說明。

1.7??? Servlet的生命周期

??? 一個Java servlet具有一個生命周期,這個生命周期定義了一個Servlet如何被載入并被初始化,如何接收請求并作出對請求的響應(yīng),如何被從服務(wù)中清除。Servlet的生命周期被javax.servlet.Servlet這個接口所定義。

??? 所有的Java Servlet都會直接地或間接地執(zhí)行javax.servlet.Servlet接口,這樣它才能在一個Servlet引擎中運(yùn)行。 Servlet引擎是Web 服務(wù)器按照J(rèn)ava Servlet API定制的擴(kuò)展。Servlet引擎提供網(wǎng)絡(luò)服務(wù),能夠理解MIME請求,并提供一 個運(yùn)行Servlet的容器。

??? javax.servlet.Servlet接口定義了在Servlet的生命周期中特定時間以及特定順序被調(diào)用的方法。

?

1.8??? Servlet的解析和載入

??? Servlet引擎解析并載入一個Servlet,這個過程可以發(fā)生在引擎啟動時,需要一個Servlet去響應(yīng)請求時,以及在此之間的任何時候。

??? Servlet引擎利用Java類載入工具載入一個Servlet,Servlet引擎可以從一個本地的文件系統(tǒng)、一個遠(yuǎn)程的文件系統(tǒng)以及網(wǎng)絡(luò)載入Servlet。

?

1.9??? Servlet的初始化

??? Servlet引擎載入Servlet后,Servlet引擎必須對Servlet進(jìn)行初始化,在這一過程中,你可以讀取一些固定存儲的數(shù)據(jù)、初始化JDBC的連接以及建立與其他資源的連接。

??? 在初始化過程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。這樣,Servlet可以對自己進(jìn)行配置。

?????? init()方法獲得了一個Servlet配置對象(ServletConfig)。這個對象在Servlet引擎中執(zhí)行,并允許Servlet通過它獲處相關(guān)參數(shù)。這個對象使得Servlet能夠訪問ServletContext對象。

?

1.10 ? ? ? Servlet處理請求

??? Servlet被初始化之后,它已經(jīng)可以處理來自客戶端的請求,每一個來自客戶端的請求都被描述成一個ServletRequest對象,Servlet的響應(yīng)被描述成一個ServletResponse對象。

??? 當(dāng)客戶端發(fā)出請求時,Servlet引擎?zhèn)鬟f給Servlet一個ServletRequest對象和一個ServletResponse對象,這兩個對象作為參數(shù)傳遞到service()方法中。

??? Servlet 也可以執(zhí)行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有權(quán)使用客戶端發(fā)出的請求。Servlet可以通過ServletInputStream對象讀取請求信息。

??? ServletResponse接口允許Servlet建立響應(yīng)頭和狀態(tài)代碼。通過執(zhí)行這個接口,Servlet有權(quán)使用ServletOutputStream類來向客戶端返回數(shù)據(jù)。

?

1.11?????? 多線程和映射

??? 在多線程的環(huán)境下,Servlet必須能處理許多同時發(fā)生的請求。例外的情況是這個Servlet執(zhí)行了SingleThreadModel接口,如果是那樣的話,Servlet只能同時處理一個請求。

??? Servlet依照Servlet引擎的映射來響應(yīng)客戶端的請求。一個映射對包括一個Servlet實(shí)例以及一個Servlet返回數(shù)據(jù)的URL,例如:HelloServlet with /hello/index.html。

??? 然而,一個映射可能是由一個URL和許多Servlet實(shí)例組成,例如:一個分布式的Servlet引擎可能運(yùn)行在不止一個的服務(wù)器中,這樣的話,每一個服務(wù)器中都可能有一個Servlet實(shí)例,以平衡進(jìn)程的載入。作為一個Servlet的開發(fā)者,你不能假定一個Servlet只有一個實(shí)例。

?

1.12?????? Servlet的卸載

??? Servlet引擎并不必需保證一個Servlet在任何時候或在服務(wù)開啟的任何時候都被載入。Servlet引擎可以自由的在任何時候使用或清除一個Servlet。因此,我們不能依賴一個類或?qū)嵗齺泶鎯χ匾男畔ⅰ?/p>

??? 當(dāng)Servlet引擎決定卸載一個Servlet時(例如,如果這個引擎被關(guān)閉或者需要讓資源),這個引擎必須允許Servlet釋放正在使用的資源并存儲有關(guān)資料。為了完成以上工作,引擎會調(diào)用Servlet的destroy()方法。

??? 在卸載一個Servlet之前,Servlet引擎必須等待所有的service()方法完成或超時結(jié)束(Servlet引擎會對超時作出定義)。當(dāng)一個 Servlet被卸載時,引擎將不能給Servlet發(fā)送任何請求。引擎必須釋放Servlet并完成無用存儲單元的收集

?

1.13?????? Servlet映射技術(shù)

??? 作為一個Servlet引擎的開發(fā)者,你必須對于如何映射客戶端的請求到Servlet有大量的適應(yīng)性。這份說明文檔不規(guī)定映射如何發(fā)生。但是,你必須能夠自由地運(yùn)用下面的所有技術(shù):

?

?????? 映射一個Servlet到一個URL

?????? 例如,你可以指定一個特殊的Servlet它僅被來自/feedback/index.html的請求調(diào)用。

?

?????? 映射一個Servlet到以一個指定的目錄名開始的所有URL

?????? 例如,你可以映射一個Servlet到/catalog,這樣來自/catalog/、 /catalog/garden和 /catalog/housewares/index.html的請求都會被映射到這個Servlet。但是來自/catalogtwo 或 /catalog.html的請求沒被映射。

?

?????? 映射一個Servlet到所有以一個特定的字段結(jié)尾的所有URL

?????? 例如,你可以映射一個來自于所有以in.thtml結(jié)尾的請求到一個特定的Servlet。

?

?????? 映射一個Servlet到一個特殊的URL /servlet/servlet_name。

?????? 例如,如果你建立了一個名叫l(wèi)istattributes的Servlet,你可以通過使用/servlet/listattributes來訪問這個Servlet。

?

1.14?????? 通過類名調(diào)用Servlet

?????? 例如,如果Servlet引擎接收了來自/servlet/com.foo.servlet.MailServlet的請求,Servlet引擎會載入這 個com.foo.servlet.MailServlet類,建立實(shí)例,并通過這個Servlet來處理請求。

?

1.15?????? Servlet環(huán)境

??? ServletContext 接口定義了一個Servlet環(huán)境對象,這個對象定義了一個在Servlet引擎上的Servlet的視圖。通過使用這個對象,Servlet可以記錄事 件、得到資源并得到來自Servlet引擎的類(例如RequestDispatcher對象)。一個Servlet只能運(yùn)行在一個Servlet環(huán)境 中,但是不同的Servlet可以在Servlet引擎上有不同的視圖。

?????? 如果Servlet引擎支持虛擬主機(jī),每個虛擬主機(jī)有一個Servlet環(huán)境。一個Servlet環(huán)境不能在虛擬主機(jī)之間共享。

?????? Servlet引擎能夠允許一個Servlet環(huán)境有它自己的活動范圍。

??? ???例如,一個Servlet環(huán)境是屬于bank應(yīng)用的,它將被映射到/bank目錄下。在這種情況下,一個對getContext方法的調(diào)用會返回/bank的Servlet環(huán)境。

?

1.16?????? HTTP會話

??? HTTP是一個沒有狀態(tài)的協(xié)議。要建立一個有效的Web服務(wù)應(yīng)用,你必須能夠識別一個連續(xù)的來自遠(yuǎn)端的客戶機(jī)的唯一的請求。隨著時間的過去,發(fā)展了許多會話跟蹤的技術(shù),但是使用起來都比較麻煩。

?????? Java Servlet API提供了一個簡單的接口,通過這個接口,Servlet引擎可以有效地跟蹤用戶的會話。

?

1.17?????? 建立Session

??? 因?yàn)镠TTP是一個請求-響應(yīng)協(xié)議,一個會話在客戶機(jī)加入之前會被認(rèn)為是一個新的會話。加入的意思是返回會話跟蹤信息到服務(wù)器中,指出會話已被建立。在客戶端加入之前,我們不能判斷下一個客戶端請求是目前會話的一部分。

在下面的情況下,Session會被認(rèn)為是新的Session。客戶端的Session在此之前還不知道客戶端選擇不加入Session,例如,如果客戶端拒絕接收來自服務(wù)器的cookie作 為一個Servlet的開發(fā)者,你必須決定你的Web應(yīng)用是否處理客戶機(jī)不加入或不能加入Session。服務(wù)器會在Web服務(wù)器或Servlet規(guī)定的時間內(nèi)維持一個Session對象。當(dāng)Session終止時,服務(wù)器會釋放Session對象以及所有綁定在Session上的對象。

綁定對象到Session中

??? 如果有助于你處理應(yīng)用的數(shù)據(jù)需求,你也許需要綁定對象到Session中,你可以通過一個唯一的名字綁定任何的對象到Session中,這時,你需要使用 HttpSession對象。任何綁定到Session上的對象都可以被處理同一會話的Servlet調(diào)用。

??? 有些對象可能需要你知道什么時候會被放置到Session中或從Session中移開。你可以通過使用HttpSessionBindingListener接口獲得這些信息。當(dāng)你的應(yīng)用存儲數(shù)據(jù)到Session中,或從Session中清除數(shù)據(jù),Servlet都會通過HttpSessionBindingListener檢杳什么類被綁定或被取消綁定。這個接口的方法會通報被綁定或被取消綁定的對象。

?

2 ?API介紹

API對象的說明

??? 這一部分包含了對Java Servlet API的全部類和接口的詳細(xì)說明。這個說明與Javadoc API差不多,但是這份文檔提供了更多的信息。

API包含了兩個軟件包,十二個接口和九個類。

軟件包:javax.servlet

  ?所包含的接口:RequestDispatcher;Servlet;ServletConfig;ServletContext;ServletRequest;ServletResponse;SingleThreadModel。

  ?所包含的類:GenericServlet;ServletInputStream;ServletOutputStream;ServletException;UnavailableException。

軟件包:javax.servlet.http

?????? 所包含的接口:HttpServletRequest;HttpServletResponse;HttpSession;HttpSessionBindingListener;HttpSessionContext。

?????? 所包含的類:Cookie;HttpServlet;HttpSessionBindingEvent;HttpUtils。

?

軟件包:javax.servlet

所包含的接口:RequestDispatcher;Servlet;ServletConfig;ServletContext;ServletRequest;ServletResponse;SingleThreadModel。

所包含的類:GenericServlet;ServletInputStream;ServletOutputStream;ServletException;UnavailableException。

2.1??? Request Dispatcher接口

?????? 定義:

?????? public interface RequestDispatcher;

?????? 定義一個對象,從客戶端接收請求,然后將它發(fā)給服務(wù)器的可用資源(例如Servlet、CGI、HTML文件、JSP文件)。Servlet引擎創(chuàng)建request dispatcher對象,用于封裝由一個特定的URL定義的服務(wù)器資源。

?????? 這個接口是專用于封裝Servlet的,但是一個Servlet引擎可以創(chuàng)建request dispatcher對象用于封裝任何類型的資源。

?????? request dispatcher對象是由Servlet引擎建立的,而不是由Servlet開發(fā)者建立的。

?????? 方法

?????? 1、forward

?????? public void forward(ServletRequest request, ServletReponse response)

???????????? throws ServletException, IOException;

?????? 被用來從這個Servlet向其它服務(wù)器資源傳遞請求。當(dāng)一個Servlet對響應(yīng)作了初步的處理,并要求其它的對象對此作出響應(yīng)時,可以使用這個方法。

?????? 當(dāng)request對象被傳遞到目標(biāo)對象時,請求的URL路徑和其他路徑參數(shù)會被調(diào)整為反映目標(biāo)對象的目標(biāo)URL路徑。

?????? 如果已經(jīng)通過響應(yīng)返回了一個ServletOutputStream對象或PrintWriter對象,這個方法將不能使用,否則,這個方法會拋出一個IllegalStateException。

?????? 2、include

?????? public void include(ServletRequest request, ServletResponse response)

???????????? throws ServletException, IOException

?????? 用來包括發(fā)送給其他服務(wù)器資源的響應(yīng)的內(nèi)容。本質(zhì)上來說,這個方法反映了服務(wù)器端的內(nèi)容。

?????? 請求對象傳到目標(biāo)對象后會反映調(diào)用請求的請求URL路徑和路徑信息。這個響應(yīng)對象只能調(diào)用這個Servlet的ServletOutputStream對象和PrintWriter對象。

?????? 一個調(diào)用include的Servlet不能設(shè)置頭域,如果這個Servlet調(diào)用了必須設(shè)置頭域的方法(例如cookie),這個方法將不能保證正常使用。作為一個Servlet開發(fā)者,你必須妥善地解決那些可能直接存儲頭域的方法。例如,即使你使用會話跟蹤,為了保證session的正常工作,你必須在一個調(diào)用include的Servlet之外開始你的session

?

2.2??? Servlet接口

?????? 定義

?????? public interface Servlet

?????? 這個接口定義了一個Servlet:一個在Web服務(wù)器上繼承了這個功能的Java類。

?????? 方法

?????? 1、init

?????? public void init(ServletConfig config) throws ServletException;

?????? Servlet引擎會在Servlet實(shí)例化之后,置入服務(wù)之前精確地調(diào)用init方法。在調(diào)用service方法之前,init方法必須成功退出。

?????? 如果init方法拋出一個ServletException,你不能將這個Servlet置入服務(wù)中,如果init方法在超時范圍內(nèi)沒完成,我們也可以假定這個Servlet是不具備功能的,也不能置入服務(wù)中。

?????? 2、service

?????? public void service(ServletRequest request, ServletResponse response)

???????????? throws ServletException, IOException;

?????? Servlet引擎調(diào)用這個方法以允許Servlet響應(yīng)請求。這個方法在Servlet未成功初始化之前無法調(diào)用。在Servlet被初始化之前,Servlet引擎能夠封鎖未決的請求。

?????? 在一個Servlet對象被卸載后,直到一個新的Servelt被初始化,Servlet引擎不能調(diào)用這個方法

?????? 3、destroy

?????? public void destroy();

?????? 當(dāng)一個Servlet被從服務(wù)中去除時,Servlet引擎調(diào)用這個方法。在這個對象的service方法所有線程未全部退出或者沒被引擎認(rèn)為發(fā)生超時操作時,destroy方法不能被調(diào)用。

?????? 4、getServletConfig

?????? public ServletConfig getServletConfig();

?????? 返回一個ServletConfig對象,作為一個Servlet的開發(fā)者,你應(yīng)該通過init方法存儲ServletConfig對象以便這個方法能返回這個對象。為了你的便利,GenericServlet在執(zhí)行這個接口時,已經(jīng)這樣做了。

?????? 5、getServletInfo

?????? public String getServletInfo();

?????? 允許Servlet向主機(jī)的Servlet運(yùn)行者提供有關(guān)它本身的信息。返回的字符串應(yīng)該是純文本格式而不應(yīng)有任何標(biāo)志(例如HTML,XML等)。

2.3??? ServletConfig接口

?????? 定義

?????? public interface ServletConfig

?????? 這個接口定義了一個對象,通過這個對象,Servlet引擎配置一個Servlet并且允許Servlet獲得一個有關(guān)它的ServletContext接口的說明。每一個ServletConfig對象對應(yīng)著一個唯一的Servlet。

?????? 方法

?????? 1、getInitParameter

?????? public String getInitParameter(String name);

?????? 這個方法返回一個包含Servlet指定的初始化參數(shù)的String。如果這個參數(shù)不存在,返加空值。

?????? 2、getInitParameterNames

?????? public Enumeration getInitParameterNames();

?????? 這個方法返回一個列表String對象,該對象包括Servlet的所有初始化參數(shù)名。如果Servlet沒有初始化參數(shù),getInitParameterNames返回一個空的列表。

?????? 3、getServletContext

?????? public ServletContext getServletContext();

?????? 返回這個Servlet的ServletContext對象。

?

2.4??? ServletContext接口

?????? 定義

?????? public interface ServletContext

?????? 定義了一個Servlet的環(huán)境對象,通過這個對象,Servlet引擎向Servlet提供環(huán)境信息。

?????? 一個Servlet的環(huán)境對象必須至少與它所駐留的主機(jī)是一一對應(yīng)的。在一個處理多個虛擬主機(jī)的Servlet引擎中(例如,使用了HTTP1.1的主機(jī) 頭域),每一個虛擬主機(jī)必須被視為一個單獨(dú)的環(huán)境。此外,Servlet引擎還可以創(chuàng)建對應(yīng)于一組Servlet的環(huán)境對象。

?????? 方法

?????? 1、getAttribute

?????? public Object getAttribute(String name);

?????? 返回Servlet環(huán)境對象中指定的屬性對象。如果該屬性對象不存在,返回空值。這個方法允許訪問有關(guān)這個Servlet引擎的在該接口的其他方法中尚未提供的附加信息。

?????? 2、getAttributeNames

?????? public Enumeration getAttributeNames();

?????? 返回一個Servlet環(huán)境對象中可用的屬性名的列表。

?????? 3、getContext

?????? public ServletContext getContext(String uripath);

?????? 返回一個Servlet環(huán)境對象,這個對象包括了特定URI路徑的Servlets和資源,如果該路徑不存在,則返回一個空值。URI路徑格式是/dir/dir/filename.ext。

?????? 為了安全,如果通過這個方法訪問一個受限制的Servlet的環(huán)境對象,會返回一個空值。

?????? 4、getMajorVersion

?????? public int getMajorVersion();

?????? 返回Servlet引擎支持的Servlet API的主版本號。例如對于2.1版,這個方法會返回一個整數(shù)2。

?????? 5、getMinorVersion

?????? public int getMinorVersion();

?????? 返回Servlet引擎支持的Servlet API的次版本號。例如對于2.1版,這個方法會返回一個整數(shù)2。

?????? 6、getMimeType

?????? public String getMimeType(String file);

??? ???返回指定文件的MIME類型,如果這種MIME類型未知,則返回一個空值。MIME類型是由Servlet引擎的配置決定的。

?????? 7、getRealPath

?????? public String getRealPath(String path);

?????? 一個符合URL路徑格式的指定的虛擬路徑的格式是:/dir/dir/filename.ext。用這個方法,可以返回與一個符合該格式的虛擬路徑相對應(yīng)的真實(shí)路徑的String。這個真實(shí)路徑的格式應(yīng)該適合于運(yùn)行這個Servlet引擎的計(jì)算機(jī)(包括其相應(yīng)的路徑解析器)。

?????? 不管是什么原因,如果這一從虛擬路徑轉(zhuǎn)換成實(shí)際路徑的過程不能執(zhí)行,該方法將會返回一個空值。

?????? 8、getResource

?????? public URL getResource(String uripath);

?????? 返回一個URL對象,該對象反映位于給定的URL地址(格式:/dir/dir/filename.ext)的Servlet環(huán)境對象已知的資源。無論 URLStreamHandlers對于訪問給定的環(huán)境是不是必須的,Servlet引擎都必須執(zhí)行。如果給定的路徑的Servlet環(huán)境沒有已知的資源,該方法會返回一個空值。

?????? 這個方法和java.lang.Class的getResource方法不完全相同。 java.lang.Class的getResource方法通過裝載類來尋找資源。而這個方法允許服務(wù)器產(chǎn)生環(huán)境變量給任何資源的任何Servlet, 而不必依賴于裝載類、特定區(qū)域等等。

?????? 9、getResourceAsStream

?????? public InputStream getResourceAsStream(String uripath);

?????? 返回一個InputStream對象,該對象引用指定的URL的Servlet環(huán)境對象的內(nèi)容。如果沒找到Servlet環(huán)境變量,就會返回空值,URL路徑應(yīng)該具有這種格式:/dir/dir/filename.ext。

?????? 這個方法是一個通過getResource方法獲得URL對象的方便的途徑。請注意,當(dāng)你使用這個方法時,meta-information(例如內(nèi)容長度、內(nèi)容類型)會丟失。

?????? 10、getRequestDispatcher

???? ??public RequestDispatcher getRequestDispatcher(String uripath);

?????? 如果這個指定的路徑下能夠找到活動的資源(例如一個Servlet,JSP頁面,CGI等等)就返回一個特定URL的RequestDispatcher 對象,否則,就返回一個空值,Servlet引擎負(fù)責(zé)用一個request dispatcher對象封裝目標(biāo)路徑。這個 request dispatcher對象可以用來完全請求的傳送。

?????? 11、getServerInfo

?????? public String getServerInfo();

?????? 返回一個String對象,該對象至少包括Servlet引擎的名字和版本號。

?????? 12、log

?????? public void log(String msg);

?????? public void log(String msg, Throwable t);

?????? public void log(Exception exception, String msg); // 這種用法將被取消

?????? 寫指定的信息到一個Servlet環(huán)境對象的log文件中。被寫入的log文件由Servlet引擎指定,但是通常這是一個事件log。當(dāng)這個方法被一個異常調(diào)用時,log中將包括堆棧跟蹤。

?????? 13、setAttribute

?????? public void setAttribute(String name, Object o);

?????? 給予Servlet環(huán)境對象中你所指定的對象一個名稱。

?????? 14、removeAttribute

?????? public void removeAttribute(String name);

?????? 從指定的Servlet環(huán)境對象中刪除一個屬性。

?????? 注:以下幾個方法將被取消

?????? 15、getServlet

?????? public Servlet getServlet(String name) throws ServletException;

?????? 最初用來返回一個指定名稱的Servlet,如果沒找到就返回一個空值。如果這個Servlet能夠返回,這就意味著它已經(jīng)被初始化,而且已經(jīng)可以接受 service請求。這是一個危險的方法。當(dāng)調(diào)用這個方法時,可能并不知道Servlet的狀態(tài),這就可能導(dǎo)致有關(guān)服務(wù)器狀態(tài)的問題。而允許一個 Servlet訪問其他Servlet的這個方法也同樣的危險。

?????? 現(xiàn)在這個方法返回一個空值,為了保持和以前版本的兼容性,現(xiàn)在這個方法還沒有被取消。在以后的API版本中,該方法將被取消。

?????? 16、getServletNames

?????? public Enumeration getServletNames();

?????? 最初用來返回一個String對象的列表,該列表表示了在這個Servlet環(huán)境下所有已知的Servlet對象名。這個列表總是包含這個Servlet自身。

基于與上一個方法同樣的理由,這也是一個危險的方法。

?????? 現(xiàn)在這個方法返回一個空的列表。為了保持和以前版本的兼容性,現(xiàn)在這個方法還沒有被取消。在以后的API版本中,該方法將被取消。

?????? 17、getServlets

?????? public Enumeration getServlets();

?????? 最初用來返回在這個Servelet環(huán)境下所有已知的Servlet對象的列表。這個列表總是包含這個Servlet自身。

基于與getServlet方法同樣的理由,這也是一個危險的方法。

?????? 現(xiàn)在這個方法返回一個空的列表。為了保持和以前版本的兼容性,現(xiàn)在這個方法還沒有被取消。在以后的API版本中,該方法將被取消。

?

2.5??? ServletRequest接口

?????? 定義

?????? public interface ServletRequest

?????? 定義一個Servlet引擎產(chǎn)生的對象,通過這個對象,Servlet可以獲得客戶端請求的數(shù)據(jù)。這個對象通過讀取請求體的數(shù)據(jù)提供包括參數(shù)的名稱、值和屬性以及輸入流的所有數(shù)據(jù)。

?????? 方法

?????? 1、getAttribute

?????? public Object getAttribute(String name);

?????? 返回請求中指定屬性的值,如果這個屬性不存在,就返回一個空值。這個方法允許訪問一些不提供給這個接口中其他方法的請求信息以及其他Servlet放置在這個請求對象內(nèi)的數(shù)據(jù)。

?????? 2、getAttributeNames

?????? public Enumeration getAttributeNames();

?????? 返回包含在這個請求中的所有屬性名的列表。

?????? 3、getCharacterEncoding

?????? public String getCharacterEncoding();

?????? 返回請求中輸入內(nèi)容的字符編碼類型,如果沒有定義字符編碼類型就返回空值。

?????? 4、getContentLength

?????? public int getContentLength();

?????? 請求內(nèi)容的長度,如果長度未知就返回-1。

?????? 5、getContentType

?????? public String getContentType();

?????? 返回請求數(shù)據(jù)體的MIME類型,如果類型未知返回空值。

?????? 6、getInputStream

?????? public ServletInputStream getInputStream() throws IOException;

?????? 返回一個輸入流用來從請求體讀取二進(jìn)制數(shù)據(jù)。如果在此之前已經(jīng)通過getReader方法獲得了要讀取的結(jié)果,這個方法會拋出一個IllegalStateException。

?????? 7、getParameter

?????? public String getParameter(String name);

?????? 以一個String返回指定的參數(shù)的值,如果這個參數(shù)不存在返回空值。例如,在一個HTTP Servlet中,這個方法會返回一個指定的查詢語句產(chǎn)生的參數(shù)的值或一個被提交的表單中的參數(shù)值。如果一個參數(shù)名對應(yīng)著幾個參數(shù)值,這個方法只能返回通過getParameterValues方法返回的數(shù)組中的第一個值。因此,如果這個參數(shù)有(或者可能有)多個值,你只能使用getParameterValues方法。

?????? 8、getParameterNames

?????? public Enumeration getParameterNames();

?????? 返回所有參數(shù)名的String對象列表,如果沒有輸入?yún)?shù),該方法返回一個空值。

?????? 9、getParameterValues

?????? public String[] getParameterValues(String name);

? ?????通過一個String對象的數(shù)組返回指定參數(shù)的值,如果這個參數(shù)不存在,該方法返回一個空值。

?????? 10、getProtocol

?????? public String getProtocol();

?????? 返回這個請求所用的協(xié)議,其形式是協(xié)議/主版本號.次版本號。例如對于一個HTTP1.0的請求,該方法返回HTTP/1.0。

?????? 11、getReader

?????? public BufferedReader getReader() throws IOException;

?????? 這個方法返回一個buffered reader用來讀取請求體的實(shí)體,其編碼方式依照請求數(shù)據(jù)的編碼方式。如果這個請求的輸入流已經(jīng)被getInputStream調(diào)用獲得,這個方法會拋出一個IllegalStateException。

?????? 12、getRemoteAddr

?????? public String getRemoteAddr();

?????? 返回發(fā)送請求者的IP地址。

?????? 13、getRemoteHost

?????? public String getRemoteHost();

?????? 返回發(fā)送請求者的主機(jī)名稱。如果引擎不能或者選擇不解析主機(jī)名(為了改善性能),這個方法會直接返回IP地址。

?????? 14、getScheme

?????? public String getScheme();

?????? 返回請求所使用的URL的模式。例如,對于一個HTTP請求,這個模式就是http。

?????? 15、getServerName

?????? public String getServerName();

?????? 返回接收請求的服務(wù)器的主機(jī)名。

?????? 16、getServerPort

?????? public int getServerPort();

?????? 返回接收請求的端口號。

?????? 17、setAttribute

?????? public void setAttribute(String name, Object object);

?????? 這個方法在請求中添加一個屬性,這個屬性可以被其他可以訪問這個請求對象的對象(例如一個嵌套的Servlet)使用。

?????? 注:以下方法將被取消

?????? getRealPath

?????? public String getRealPath(String path);

?????? 返回與虛擬路徑相對應(yīng)的真實(shí)路徑,如果因?yàn)槟撤N原因,這一過程不能進(jìn)行,該方法將返回一個空值。

?????? 這個方法和ServletContext接口中的getRealPath方法重復(fù)。在2.1版中,ServletContext接口將闡明一個 Servlet所能用的所有的路徑的映射。該方法執(zhí)行的結(jié)果將會與ServletContext中g(shù)etRealPath方法的結(jié)果完全一樣。

?

2.6??? ServletResponse接口

?????? 定義

?????? public interface ServletResponse

?????? 定義一個Servlet引擎產(chǎn)生的對象,通過這個對象,Servlet對客戶端的請求作出響應(yīng)。這個響應(yīng)應(yīng)該是一個MIME實(shí)體,可能是一個HTML頁、圖象數(shù)據(jù)或其他MIME的格式。

?????? 方法

?????? 1、getCharacterEncoding

?????? public String getCharacterEncoding();

?????? 返回MIME實(shí)體的字符編碼。這個字符編碼可以是指定的類型,也可以是與請求頭域所反映的客戶端所能接受的字符編碼最匹配的類型。在HTTP協(xié)議中,這個信息被通過Accept-Charset傳送到Servlet引擎。

?????? 有關(guān)字符編碼和MIME的更多信息請參看RFC 2047。

?????? 2、getOutputStream

?????? public ServletOutputStream getOutputStream() throws IOException;

?????? 返回一個記錄二進(jìn)制的響應(yīng)數(shù)據(jù)的輸出流。

?????? 如果這個響應(yīng)對象已經(jīng)調(diào)用getWriter,將會拋出IllegalStateException。

?????? 3、getWriter

?????? public PrintWriter getWriter throws IOException;

?????? 這個方法返回一個PringWriter對象用來記錄格式化的響應(yīng)實(shí)體。如果要反映使用的字符編碼,必須修改響應(yīng)的MIME類型。在調(diào)用這個方法之前,必須設(shè)定響應(yīng)的content類型。

?????? 如果沒有提供這樣的編碼類型,會拋出一個UnsupportedEncodingException,如果這個響應(yīng)對象已調(diào)用getOutputStream,會拋出一個getOutputStream。

?????? 4、setContentLength

?????? public void setContentLength(int length);

?????? 設(shè)置響應(yīng)的內(nèi)容的長度,這個方法會覆蓋以前對內(nèi)容長度的設(shè)定。

?????? 為了保證成功地設(shè)定響應(yīng)頭的內(nèi)容長度,在響應(yīng)被提交到輸出流之前必須調(diào)用這個方法。

?????? 5、setContentType

?????? public void setContentType(String type);

?????? 這個方法用來設(shè)定響應(yīng)的content類型。這個類型以后可能會在另外的一些情況下被隱式地修改,這里所說的另外的情況可能當(dāng)服務(wù)器發(fā)現(xiàn)有必要的情況下對MIME的字符設(shè)置。

?????? 為了保證成功地設(shè)定響應(yīng)頭的content類型,在響應(yīng)被提交到輸出流之前必須調(diào)用這個方法。

?

2.7??? ?SingleThreadModel接口

?????? 定義

?????? public interface SingleThreadModel;

?????? 這是一個空接口,它指定了系統(tǒng)如何處理對同一個Servlet的調(diào)用。如果一個Servlet被這個接口指定,那么在這個Servlet中的service方法中將不會有兩個線程被同時執(zhí)行。

?????? Servlet可以通過維持一個各自獨(dú)立的Servlet實(shí)例池,或者通過只讓Servlet的service中只有一個線程的方法來實(shí)現(xiàn)這個保證。

?

2.8??? GenericServlet類

?????? public abstract class GenericServlet implements Servlet,

???????????? ServletConfig, Serializable;

?????? 這個類的存在使得編寫Servlet更加方便。它提供了一個簡單的方案,這個方案用來執(zhí)行有關(guān)Servlet生命周期的方法以及在初始化時對ServletConfig對象和ServletContext對象進(jìn)行說明。

?????? 方法

?????? 1、destroy

?????? public void destroy();

?????? 在這里destroy方法不做任何其他的工作。

?????? 2、getInitParameter

?????? public String getInitParameter(String name);

?????? 這是一個簡便的途徑,它將會調(diào)用ServletConfig對象的同名的方法。

?????? 3、getInitParameterNames

?????? public Enumeration getInitParameterNames();

?????? 這是一個簡便的途徑,它將會調(diào)用ServletConfig對象的同名的方法。

? ?????4、getServletConfig

?????? public ServletConfig getServletConfig();

?????? 返回一個通過這個類的init方法產(chǎn)生的ServletConfig對象的說明。

?????? 5、getServletContext

?????? public ServletContext getServletContext();

?????? 這是一個簡便的途徑,它將會調(diào)用ServletConfig對象的同名的方法。

?????? 6、getServletInfo

?????? public String getServletInfo();

?????? 返回一個反映Servlet版本的String。

?????? 7、init

?????? public void init() throws ServletException;

?????? public void init(ServletConfig config) throws ServletException;

?????? init(ServletConfig config)方法是一個對這個Servlet的生命周期進(jìn)行初始化的簡便的途徑。

?????? init()方法是用來讓你對GenericServlet類進(jìn)行擴(kuò)充的,使用這個方法時,你不需要存儲config對象,也不需要調(diào)用super.init(config)。

?????? init(ServletConfig config)方法會存儲config對象然后調(diào)用init()。如果你重載了這個方法,你必須調(diào)用super.init(config),這樣GenericServlet類的其他方法才能正常工作。

?????? 8、log

????? ?public void log(String msg);

?????? public void log(String msg, Throwable cause);

?????? 通過Servlet content對象將Servlet的類名和給定的信息寫入log文件中。

?????? 9、service

?????? public abstract void service(ServletRequest request, ServletResponse

???????????? response) throws ServletException, IOException;

?????? 這是一個抽象的方法,當(dāng)你擴(kuò)展這個類時,為了執(zhí)行網(wǎng)絡(luò)請求,你必須執(zhí)行它。

?

2.9??? ServletInputStream類

?????? 定義

?????? public abstract class ServletInputStream extends InputStream

?????? 這個類定義了一個用來讀取客戶端的請求信息的輸入流。這是一個Servlet引擎提供的抽象類。一個Servlet通過使用ServletRequest接口獲得了對一個ServletInputStream對象的說明。

?????? 這個類的子類必須提供一個從InputStream接口讀取有關(guān)信息的方法。

?????? 方法

?????? 1、readLine

?????? public int readLine(byte[] b, int off, int len) throws IOException;

?????? 從輸入流的指定的偏移量開始將指定長度的字節(jié)讀入到指定的數(shù)組中。如果該行所有請求的內(nèi)容都已被讀取,這個讀取的過程將結(jié)束。如果是遇到了新的一行,新的一行的首個字符也將被讀入到數(shù)組中。

?

2.10 ? ?ServletOutputStream類

?????? 定義

?????? public abstract class ServletOutputStream extends OutputStream

?????? 這是一個由Servlet引擎使用的抽象類。Servlet通過使用ServletResponse接口的使用獲得了對一個這種類型的對象的說明。利用這個輸出流可以將數(shù)據(jù)返回到客戶端。

?????? 這個類的子類必須提供一個向OutputStream接口寫入有關(guān)信息的方法。

?????? 在這個接口中,當(dāng)一個刷新或關(guān)閉的方法被調(diào)用時。所有數(shù)據(jù)緩沖區(qū)的信息將會被發(fā)送到客戶端,也就是說響應(yīng)被提交了。請注意,關(guān)閉這種類型的對象時不一定要關(guān)閉隱含的socket流。

?????? 方法

?????? 1、print

?????? public void print(String s) throws IOException;

?????? public void print(boolean b) throws IOException;

?????? public void print(char c) throws IOException;

?????? public void print(int i) throws IOException;

?????? public void print(long l) throws IOException;

?????? public void print(float f) throws IOException;

?????? public void print(double d) throws IOException;

?? ????輸出變量到輸出流中

?????? 2、println

?????? public void println() throws IOException;

?????? public void println(String s) throws IOException;

?????? public void println(boolean b) throws IOException;

?????? public void println(char c) throws IOException;

????? ?public void println(int i) throws IOException;

?????? public void println(long l) throws IOException;

?????? public void println(float f) throws IOException;

?????? public void println(double d) throws IOException;

?????? 輸出變量到輸出流中,并增加一個回車換行符

?

2.11 ? ?ServletException類

?????? 定義

?????? public class ServletException extends Exception

?????? 當(dāng)Servlet遇到問題時拋出的一個異常。

?????? 構(gòu)造函數(shù)

?????? public ServletException();

?????? public ServletException(String message);

?????? public ServletException(String message, Throwable cause);

?????? public ServletException(Throwable cause);

?????? 構(gòu)造一個新的ServletException,如果這個構(gòu)造函數(shù)包括一個Throwable參數(shù),這個Throwable對象將被作為可能拋出這個異常的原因。

?????? 方法

?????? 1、getRootCause

?????? public Throwable getRootCause();

?????? 如果配置了拋出這個異常的原因,這個方法將返回這個原因,否則返回一個空值。

?

2.12?????? UnavailableException類

?????? 定義

?????? public class UnavailableException extends ServletException

?????? 不論一個Servlet是永久地還是臨時地?zé)o效,都會拋出這個異常。Servlet會記錄這個異常以及Servlet引擎所要采取的相應(yīng)措施。

?????? 臨時的無效是指Servlet在某一時間由于一個臨時的問題而不能處理請求。例如,在另一個不同的應(yīng)用層的服務(wù)(可能是數(shù)據(jù)庫)無法使用。這個問題可能會自行糾正或者需要采取其他的糾正措施。

?????? 永久的無效是指除非管理員采取措施,這個Servlet將不能處理客戶端的請求。例如,這個Servlet配置信息丟失或Servlet的狀態(tài)被破壞。

?????? Servlet 引擎可以安全地處理包括永久無效在內(nèi)的這兩種異常,但是對臨時無效的正常處理可以使得Servlet引擎更健壯。特別的,這時對Servlet的請求只是 被阻止(或者是被延期)一段時間,這顯然要比在service自己重新啟動前完全拒絕請求更為科學(xué)。

?????? 構(gòu)造函數(shù)

?????? public UnavailableException(Servlet servlet, String message);

?????? public UnavailableException(int seconds, Servlet servlet,

???????????? String message);

?????? 構(gòu)造一個包含指定的描述信息的新的異常。如果這個構(gòu)造函數(shù)有一個關(guān)于秒數(shù)的參數(shù),這將給出Servlet發(fā)生臨時無效后,能夠重新處理請求的估計(jì)時間。如果不包含這個參數(shù),這意味著這個Servlet永久無效。

?????? 方法

?????? 1、getServlet

?????? public Servlet getServlet();

?????? 返回報告無效的Servlet。這被Servlet引擎用來識別受到影響的Servlet。

?????? 2、getUnavailableSeconds

?????? public int getUnavailableSeconds();

?????? 返回Servlet預(yù)期的無效時間,如果這個Servlet是永久無效,返回-1。

?????? 3、isPermanent

?????? public boolean isPermanent();

?????? 如果這個Servlet永久無效,返回布爾值true,指示必須采取一些管理行動以使得這個Servlet可用。

?

軟件包:javax.servlet.http

?????? 所包含的接口:HttpServletRequest;HttpServletResponse;HttpSession;HttpSessionBindingListener;HttpSessionContext。

?????? 所包含的類:Cookie;HttpServlet;HttpSessionBindingEvent;HttpUtils。


2.13?????? HttpServletRequest接口

?????? 定義

?????? public interface HttpServletRequest extends ServletRequest;

?????? 用來處理一個對Servlet的HTTP格式的請求信息。

?????? 方法

?????? 1、getAuthType

?????? public String getAuthType();

?? ????返回這個請求的身份驗(yàn)證模式。

?????? 2、getCookies

?????? public Cookie[] getCookies();

?????? 返回一個數(shù)組,該數(shù)組包含這個請求中當(dāng)前的所有cookie。如果這個請求中沒有cookie,返回一個空數(shù)組。

?????? 3、getDateHeader

?????? public long getDateHeader(String name);

?????? 返回指定的請求頭域的值,這個值被轉(zhuǎn)換成一個反映自1970-1-1日(GMT)以來的精確到毫秒的長整數(shù)。

?????? 如果頭域不能轉(zhuǎn)換,拋出一個IllegalArgumentException。如果這個請求頭域不存在,這個方法返回-1。

?????? 4、getHeader

?????? public String getHeader(String name);

?????? 返回一個請求頭域的值。(譯者注:與上一個方法不同的是,該方法返回一個字符串)

?????? 如果這個請求頭域不存在,這個方法返回-1。

?????? 5、getHeaderNames

?????? public Enumeration getHeaderNames();

?????? 該方法返回一個String對象的列表,該列表反映請求的所有頭域名。

?????? 有的引擎可能不允許通過這種方法訪問頭域,在這種情況下,這個方法返回一個空的列表。

?????? 6、getIntHeader

?????? public int getIntHeader(String name);

?????? 返回指定的請求頭域的值,這個值被轉(zhuǎn)換成一個整數(shù)。

?????? 如果頭域不能轉(zhuǎn)換,拋出一個IllegalArgumentException。如果這個請求頭域不存在,這個方法返回-1。

?????? 7、getMethod

?????? public String getMethod();

?????? 返回這個請求使用的HTTP方法(例如:GET、POST、PUT)

?????? 8、getPathInfo

?????? public String getPathInfo();

?????? 這個方法返回在這個請求的URL的Servlet路徑之后的請求URL的額外的路徑信息。如果這個請求URL包括一個查詢字符串,在返回值內(nèi)將不包括這個查詢字符串。這個路徑在返回之前必須經(jīng)過URL解碼。如果在這個請求的URL的Servlet路徑之后沒有路徑信息。這個方法返回空值。

?????? 9、getPathTranslated

?????? public String getPathTranslated();

?????? 這個方法獲得這個請求的URL的Servlet路徑之后的額外的路徑信息,并將它轉(zhuǎn)換成一個真實(shí)的路徑。在進(jìn)行轉(zhuǎn)換前,這個請求的URL必須經(jīng)過URL解碼。如果在這個URL的Servlet路徑之后沒有附加路徑信息。這個方法返回空值。

? ?????10、getQueryString

?????? public String getQueryString();

?????? 返回這個請求URL所包含的查詢字符串。一個查詢字串符在一個URL中由一個“?”引出。如果沒有查詢字符串,這個方法返回空值。

?????? 11、getRemoteUser

?????? public String getRemoteUser

?????? 返回作了請求的用戶名,這個信息用來作HTTP用戶論證。

?????? 如果在請求中沒有用戶名信息,這個方法返回空值。

?????? 12、getRequestedSessionId

?????? public String getRequestedSessionId();

?????? 返回這個請求相應(yīng)的session id。如果由于某種原因客戶端提供的session id是無效的,這個session id將與在當(dāng)前session中的session id不同,與此同時,將建立一個新的session。

?????? 如果這個請求沒與一個session關(guān)聯(lián),這個方法返回空值。

?????? 13、getRequestURI

?????? public String getRequestURI();

?????? 從HTTP請求的第一行返回請求的URL中定義被請求的資源的部分。如果有一個查詢字符串存在,這個查詢字符串將不包括在返回值當(dāng)中。例如,一個請求通過 /catalog/books?id=1這樣的URL路徑訪問,這個方法將返回/catalog/books。這個方法的返回值包括了Servlet路徑 和路徑信息。

?????? 如果這個URL路徑中的的一部分經(jīng)過了URL編碼,這個方法的返回值在返回之前必須經(jīng)過解碼。

?????? 14、getServletPath

?????? public String getServletPath();

?????? 這個方法返回請求URL反映調(diào)用Servlet的部分。例如,一個Servlet被映射到/catalog/summer這個URL路徑,而一個請求使用了/catalog/summer/casual這樣的路徑。所謂的反映調(diào)用Servlet的部分就是指/catalog/summer。

?????? 如果這個Servlet不是通過路徑匹配來調(diào)用。這個方法將返回一個空值。

?????? 15、getSession

?????? public HttpSession getSession();

?????? public HttpSession getSession(boolean create);

?????? 返回與這個請求關(guān)聯(lián)的當(dāng)前的有效的session。如果調(diào)用這個方法時沒帶參數(shù),那么在沒有session與這個請求關(guān)聯(lián)的情況下,將會新建一個session。如果調(diào)用這個方法時帶入了一個布爾型的參數(shù),只有當(dāng)這個參數(shù)為真時,session才會被建立。

?????? 為了確保session能夠被完全維持。Servlet開發(fā)者必須在響應(yīng)被提交之前調(diào)用該方法。

?????? 如果帶入的參數(shù)為假,而且沒有session與這個請求關(guān)聯(lián)。這個方法會返回空值。

?????? 16、isRequestedSessionIdValid

?????? public boolean isRequestedSessionIdValid();

?????? 這個方法檢查與此請求關(guān)聯(lián)的session當(dāng)前是不是有效。如果當(dāng)前請求中使用的session無效,它將不能通過getSession方法返回。

?????? 17、isRequestedSessionIdFromCookie

?????? public boolean isRequestedSessionIdFromCookie();

?????? 如果這個請求的session id是通過客戶端的一個cookie提供的,該方法返回真,否則返回假。

?????? 18、isRequestedSessionIdFromURL

?????? public boolean isRequestedSessionIdFromURL();

?????? 如果這個請求的session id是通過客戶端的URL的一部分提供的,該方法返回真,否則返回假。請注意此方法與isRequestedSessionIdFromUrl在URL的拼寫上不同。

?????? 以下方法將被取消

?????? 19、isRequestedSessionIdFromUrl

?????? public boolean isRequestedSessionIdFromUrl();

?????? 該方法被isRequestedSessionIdFromURL代替。

?

2.14?????? HttpServletResponse接口

?????? 定義?

?????? public interface HttpServletResponse extends ServletResponse

?????? 描述一個返回到客戶端的HTTP回應(yīng)。這個接口允許Servlet程序員利用HTTP協(xié)議規(guī)定的頭信息。

?????? 成員變量

?????? public static final int SC_CONTINUE = 100;

?????? public static final int SC_SWITCHING_PROTOCOLS = 101;

?? ????public static final int SC_OK = 200;

?????? public static final int SC_CREATED = 201;

?????? public static final int SC_ACCEPTED = 202;

?????? public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;

?????? public static final int SC_NO_CONTENT = 204;

?????? public static final int SC_RESET_CONTENT = 205;

?????? public static final int SC_PARTIAL_CONTENT = 206;

?????? public static final int SC_MULTIPLE_CHOICES = 300;

?????? public static final int SC_MOVED_PERMANENTLY = 301;

?????? public static final int SC_MOVED_TEMPORARILY = 302;

?????? public static final int SC_SEE_OTHER = 303;

?????? public static final int SC_NOT_MODIFIED = 304;

?????? public static final int SC_USE_PROXY = 305;

?????? public static final int SC_BAD_REQUEST = 400;

?????? public static final int SC_UNAUTHORIZED = 401;

?????? public static final int SC_PAYMENT_REQUIRED = 402;

?????? public static final int SC_FORBIDDEN = 403;

?????? public static final int SC_NOT_FOUND = 404;

?????? public static final int SC_METHOD_NOT_ALLOWED = 405;

?????? public static final int SC_NOT_ACCEPTABLE = 406;

?????? public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;

?????? public static final int SC_REQUEST_TIMEOUT = 408;

?????? public static final int SC_CONFLICT = 409;

?????? public static final int SC_GONE = 410;

?????? public static final int SC_LENGTH_REQUIRED = 411;

?????? public static final int SC_PRECONDITION_FAILED = 412;

?????? public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;

?????? public static final int SC_REQUEST_URI_TOO_LONG = 414;

?????? public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;

?????? public static final int SC_INTERNAL_SERVER_ERROR = 500;

?????? public static final int SC_NOT_IMPLEMENTED = 501;

?????? public static final int SC_BAD_GATEWAY = 502;

?????? public static final int SC_SERVICE_UNAVAILABLE = 503;

?????? public static final int SC_GATEWAY_TIMEOUT = 504;

?????? public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;

?????? 以上HTTP產(chǎn)狀態(tài)碼是由HTTP/1.1定義的。

?????? 方法

?????? 1、addCookie

??? ???public void addCookie(Cookie cookie);

?????? 在響應(yīng)中增加一個指定的cookie。可多次調(diào)用該方法以定義多個cookie。為了設(shè)置適當(dāng)?shù)念^域,該方法應(yīng)該在響應(yīng)被提交之前調(diào)用。

?????? 2、containsHeader

?????? public boolean containsHeader(String name);

?????? 檢查是否設(shè)置了指定的響應(yīng)頭。

?????? 3、encodeRedirectURL

?????? public String encodeRedirectURL(String url);

?????? 對sendRedirect方法使用的指定URL進(jìn)行編碼。如果不需要編碼,就直接返回這個URL。之所以提供這個附加的編碼方法,是因?yàn)樵?redirect的情況下,決定是否對URL進(jìn)行編碼的規(guī)則和一般情況有所不同。所給的URL必須是一個絕對URL。相對URL不能被接收,會拋出一個 IllegalArgumentException。

?????? 所有提供給sendRedirect方法的URL都應(yīng)通過這個方法運(yùn)行,這樣才能確保會話跟蹤能夠在所有瀏覽器中正常運(yùn)行。

?????? 4、encodeURL

?????? public String encodeURL(String url);

?????? 對包含session ID的URL進(jìn)行編碼。如果不需要編碼,就直接返回這個URL。Servlet引擎必須提供URL編碼方法,因?yàn)樵谟行┣闆r下,我們將不得不重寫URL,例如,在響應(yīng)對應(yīng)的請求中包含一個有效的session,但是這個session不能被非URL的(例如cookie)的手段來維 持。

?????? 所有提供給Servlet的URL都應(yīng)通過這個方法運(yùn)行,這樣才能確保會話跟蹤能夠在所有瀏覽器中正常運(yùn)行。

?????? 5、sendError

?????? public void sendError(int statusCode) throws IOException;

?????? public void sendError(int statusCode, String message) throws

????????? IOException;

?????? 用給定的狀態(tài)碼發(fā)給客戶端一個錯誤響應(yīng)。如果提供了一個message參數(shù),這將作為響應(yīng)體的一部分被發(fā)出,否則,服務(wù)器會返回錯誤代碼所對應(yīng)的標(biāo)準(zhǔn)信息。

?????? 調(diào)用這個方法后,響應(yīng)立即被提交。在調(diào)用這個方法后,Servlet不會再有更多的輸出。

?????? 6、sendRedirect

?????? public void sendRedirect(String location) throws IOException;

?????? 使用給定的路徑,給客戶端發(fā)出一個臨時轉(zhuǎn)向的響應(yīng)(SC_MOVED_TEMPORARILY)。給定的路徑必須是絕對URL。相對URL將不能被接收,會拋出一個IllegalArgumentException。

?????? 這個方法必須在響應(yīng)被提交之前調(diào)用。調(diào)用這個方法后,響應(yīng)立即被提交。在調(diào)用這個方法后,Servlet不會再有更多的輸出。

?????? 7、setDateHeader

?????? public void setDateHeader(String name, long date);

?????? 用一個給定的名稱和日期值設(shè)置響應(yīng)頭,這里的日期值應(yīng)該是反映自1970-1-1日(GMT)以來的精確到毫秒的長整數(shù)。如果響應(yīng)頭已經(jīng)被設(shè)置,新的值將覆蓋當(dāng)前的值。

?????? 8、setHeader

?????? public void setHeader(String name, String value);

?????? 用一個給定的名稱和域設(shè)置響應(yīng)頭。如果響應(yīng)頭已經(jīng)被設(shè)置,新的值將覆蓋當(dāng)前的值。

?????? 9、setIntHeader

?????? public void setIntHeader(String name, int value);

?????? 用一個給定的名稱和整形值設(shè)置響應(yīng)頭。如果響應(yīng)頭已經(jīng)被設(shè)置,新的值將覆蓋當(dāng)前的值。

?????? 10、setStatus

?????? public void setStatus(int statusCode);

?????? 這個方法設(shè)置了響應(yīng)的狀態(tài)碼,如果狀態(tài)碼已經(jīng)被設(shè)置,新的值將覆蓋當(dāng)前的值。

?????? 以下的幾個方法將被取消

?????? 11、encodeRedirectUrl

?????? public String encodeRedirectUrl(String url);

?????? 該方法被encodeRedirectURL取代。

?????? 12、encodeUrl

?????? public String encodeUrl(String url);

?????? 該方法被encodeURL取代。

?????? 13、setStatus

?????? public void setStatus(int statusCode, String message);

?????? 這個方法設(shè)置了響應(yīng)的狀態(tài)碼,如果狀態(tài)碼已經(jīng)被設(shè)置,新的值將覆蓋當(dāng)前的值。如果提供了一個message,它也將會被作為響應(yīng)體的一部分被發(fā)送。

?

2.15?????? HttpSession接口

?? ????定義

?????? public interface HttpSession

?????? 這個接口被Servlet引擎用來實(shí)現(xiàn)在HTTP客戶端和HTTP會話兩者的關(guān)聯(lián)。這種關(guān)聯(lián)可能在多外連接和請求中持續(xù)一段給定的時間。session用來在無狀態(tài)的HTTP協(xié)議下越過多個請求頁面來維持狀態(tài)和識別用戶。

?????? 一個session可以通過cookie或重寫URL來維持。

?????? 方法

?????? 1、getCreationTime

?????? public long getCreationTime();

?????? 返回建立session的時間,這個時間表示為自1970-1-1日(GMT)以來的毫秒數(shù)。

?????? 2、getId

?????? public String getId();

?????? 返回分配給這個session的標(biāo)識符。一個HTTP session的標(biāo)識符是一個由服務(wù)器來建立和維持的唯一的字符串。

?????? 3、getLastAccessedTime

?????? public long getLastAccessedTime();

?????? 返回客戶端最后一次發(fā)出與這個session有關(guān)的請求的時間,如果這個session是新建立的,返回-1。這個時間表示為自1970-1-1日(GMT)以來的毫秒數(shù)。

?????? 4、getMaxInactiveInterval

?????? public int getMaxInactiveInterval();

?????? 返加一個秒數(shù),這個秒數(shù)表示客戶端在不發(fā)出請求時,session被Servlet引擎維持的最長時間。在這個時間之后,Servlet引擎可能被Servlet引擎終止。如果這個session不會被終止,這個方法返回-1。

?????? 當(dāng)session無效后再調(diào)用這個方法會拋出一個IllegalStateException。

?????? 5、getValue

?????? public Object getValue(String name);

?????? 返回一個以給定的名字綁定到session上的對象。如果不存在這樣的綁定,返回空值。

?????? 當(dāng)session無效后再調(diào)用這個方法會拋出一個IllegalStateException。

?????? 6、getValueNames

? ?????public String[] getValueNames();

?????? 以一個數(shù)組返回綁定到session上的所有數(shù)據(jù)的名稱。

?????? 當(dāng)session無效后再調(diào)用這個方法會拋出一個IllegalStateException。

?????? 7、invalidate

?????? public void invalidate();

?????? 這個方法會終止這個session。所有綁定在這個session上的數(shù)據(jù)都會被清除。并通過HttpSessionBindingListener接口的valueUnbound方法發(fā)出通告。

?????? 8、isNew

?????? public boolean isNew();

?????? 返回一個布爾值以判斷這個session是不是新的。如果一個session已經(jīng)被服務(wù)器建立但是還沒有收到相應(yīng)的客戶端的請求,這個session將被 認(rèn)為是新的。這意味著,這個客戶端還沒有加入會話或沒有被會話公認(rèn)。在他發(fā)出下一個請求時還不能返回適當(dāng)?shù)膕ession認(rèn)證信息。

?????? 當(dāng)session無效后再調(diào)用這個方法會拋出一個IllegalStateException。

?????? 9、putValue

?????? public void putValue(String name, Object value);

?????? 以給定的名字,綁定給定的對象到session中。已存在的同名的綁定會被重置。這時會調(diào)用HttpSessionBindingListener接口的valueBound方法。

?????? 當(dāng)session無效后再調(diào)用這個方法會拋出一個IllegalStateException。

?????? 10、removeValue

???? ??public void removeValue(String name);

?????? 取消給定名字的對象在session上的綁定。如果未找到給定名字的綁定的對象,這個方法什么出不做。這時會調(diào)用HttpSessionBindingListener接口的valueUnbound方法。

?????? 當(dāng)session無效后再調(diào)用這個方法會拋出一個IllegalStateException。

?????? 11、setMaxInactiveInterval

?????? public int setMaxInactiveInterval(int interval);

?????? 設(shè)置一個秒數(shù),這個秒數(shù)表示客戶端在不發(fā)出請求時,session被Servlet引擎維持的最長時間。

?????? 以下這個方法將被取消

?????? 12、getSessionContext

?????? public HttpSessionContext getSessionContext();

?????? 返回session在其中得以保持的環(huán)境變量。這個方法和其他所有HttpSessionContext的方法一樣被取消了。


2.16?????? ?HttpSessionBindingListener接口

?????? 定義

?????? public interface HttpSessionBindingListener

?????? 這個對象被加入到HTTP的session中,執(zhí)行這個接口會通告有沒有什么對象被綁定到這個HTTP session中或被從這個HTTP session中取消綁定。

?????? 方法

?????? 1、valueBound

?????? public void valueBound(HttpSessionBindingEvent event);

?????? 當(dāng)一個對象被綁定到session中,調(diào)用此方法。HttpSession.putValue方法被調(diào)用時,Servlet引擎應(yīng)該調(diào)用此方法。

?????? 2、valueUnbound

?????? public void valueUnbound(HttpSessionBindingEvent event);

?????? 當(dāng)一個對象被從session中取消綁定,調(diào)用此方法。HttpSession.removeValue方法被調(diào)用時,Servlet引擎應(yīng)該調(diào)用此方法。

?

2.17?????? HttpSessionContext接口

?????? 定義

?????? 此接口將被取消

?????? public interface HttpSessionContext

?????? 這個對象是與一組HTTP session關(guān)聯(lián)的單一的實(shí)體。

?????? 這個接口由于安全的原因被取消,它出現(xiàn)在目前的版本中僅僅是為了兼容性的原因。這個接口的方法將模擬以前的版本的定義返回相應(yīng)的值。

?????? 方法

?????? 1、getSession

?????? public HttpSession getSession(String sessionId);

?????? 當(dāng)初用來返回與這個session id相關(guān)的session。現(xiàn)在返回空值。

?????? 2、getIds

?????? public Enumeration getIds();

?????? 當(dāng)初用來返回這個環(huán)境下所有session id的列表。現(xiàn)在返回空的列表。

?

2.18?????? Cookie類

?????? 定義

?????? public class Cookie implements Cloneable

?????? 這個類描述了一個cookie,有關(guān)cookie的定義你可以參照Netscape Communications Corporation的說明,也可以參照RFC 2109。

?????? 構(gòu)造函數(shù)

?????? public Cookie(String name, String value);

?????? 用一個name-value對定義一個cookie。這個name必須能被HTTP/1.1所接受。

?????? 以字符$開頭的name被RFC 2109保留。

?????? 給定的name如果不能被HTTP/1.1所接受,該方法拋出一個IllegalArgumentException。

?????? 方法

?????? 1、getComment

?????? public String getComment();

?????? 返回描述這個cookie目的的說明,如果未定義這個說明,返回空值。

?????? 2、getDomain

?????? public String getDomain();

?????? 返回這個cookie可以出現(xiàn)的區(qū)域,如果未定義區(qū)域,返回空值。

?????? 3、getMaxAge

????? ?public int getMaxAge();

?????? 這個方法返回這個cookie指定的最長存活時期。如果未定義這個最長存活時期,該方法返回-1。

?????? 4、getName

?????? public String getName();

?????? 該方法返回cookie名。

?????? 5、getPath

?????? public String getPath();

?????? 返回這個cookie有效的所有URL路徑的前綴,如果未定義,返回空值。

?????? 6、getSecure

?????? public boolean getSecure();

?????? 如果這個cookie只通過安全通道傳輸返回真,否則返回假。

?????? 7、getValue

?????? public String getValue();

?????? 該方法返回cookie的值。

?????? 8、getVersion

?????? public int getVersion();

?????? 返回cookie的版本。版本1由RFC 2109解釋。版本0由Netscape Communications Corporation的說明解釋。新構(gòu)造的cookie默認(rèn)使用版本0。

?????? 9、setComment

?????? public void setComment(String purpose);

?????? 如果一個用戶將這個cookie提交給另一個用戶,必須通過這個說明描述這個cookie的目的。版本0不支持這個屬性。

?????? 10、setDomain

?????? public void setDomain(String pattern);

?????? 這個方法設(shè)置cookie的有效域的屬性。這個屬性指定了cookie可以出現(xiàn)的區(qū)域。一個有效域以一個點(diǎn)開頭(.foo.com),這意味著在指定的域名解析系統(tǒng)的區(qū)域中(可能是www.foo.com但不是a.b.foo.com)的主機(jī)可以看到這個cookie。默認(rèn)情況是,cookie只能返回保 存它的主機(jī)。

?????? 11、setMaxAge

?????? public void setMaxAge(int expiry);

?????? 這個方法設(shè)定這個cookie的最長存活時期。在該存活時期之后,cookie會被終目。負(fù)數(shù)表示這個cookie不會生效,0將從客戶端刪除這個cookie。

? ? ? ?12、setPath

?????? public void setPath(String uri);

?????? 這個方法設(shè)置cookie的路徑屬性。客戶端只能向以這個給定的路徑String開頭的路徑返回cookie。

?????? 13、setSecure

?????? public void setSecure(boolean flag);

?????? 指出這個cookie只能通過安全通道(例如HTTPS)發(fā)送。只有當(dāng)產(chǎn)生這個cookie的服務(wù)器使用安全協(xié)議發(fā)送這個cookie值時才能這樣設(shè)置。

?????? 14、setValue

?????? public void setValue(String newValue);

?????? 設(shè)置這個cookie的值,對于二進(jìn)制數(shù)據(jù)采用BASE64編碼。

?????? 版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。

?????? 15、setVersion

?????? public void setVersion(int v);

?????? 設(shè)置cookie的版本號

?

2.19?????? HttpServlet類

?????? 定義

?????? public class HttpServlet extends GenericServlet implements

????????? Serializable

?????? 這是一個抽象類,用來簡化HTTP Servlet寫作的過程。它是GenericServlet類的擴(kuò)充,提供了一個處理HTTP協(xié)議的框架。

?????? 在這個類中的service方法支持例如GET、POST這樣的標(biāo)準(zhǔn)的HTTP方法。這一支持過程是通過分配他們到適當(dāng)?shù)姆椒?#xff08;例如doGet、doPost)來實(shí)現(xiàn)的。

?????? 方法

?????? 1、doDelete

?????? protected void doDelete(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP DELETE操作。這個操作允許客戶端請求從服務(wù)器上刪除URL。這一操作可能有負(fù)面影響,對此用戶就負(fù)起責(zé)任。

?????? 這一方法的默認(rèn)執(zhí)行結(jié)果是返回一個HTTP BAD_REQUEST錯誤。當(dāng)你要處理DELETE請求時,你必須重載這一方法。

?????? 2、doGet

?????? protected void doGet(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP GET操作。這個操作允許客戶端簡單地從一個HTTP服務(wù)器“獲得”資源。對這個方法的重載將自動地支持HEAD方法。

?????? GET操作應(yīng)該是安全而且沒有負(fù)面影響的。這個操作也應(yīng)該可以安全地重復(fù)。

?????? 這一方法的默認(rèn)執(zhí)行結(jié)果是返回一個HTTP BAD_REQUEST錯誤。

?????? 3、doHead

?????? protected void doHead(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP HEAD操作。默認(rèn)的情況是,這個操作會按照一個無條件的GET方法來執(zhí)行,該操作不向客戶端返回任何數(shù)據(jù),而僅僅是返回包含內(nèi)容長度的頭信息。

?????? 與GET操作一樣,這個操作應(yīng)該是安全而且沒有負(fù)面影響的。這個操作也應(yīng)該可以安全地重復(fù)。

?????? 這個方法的默認(rèn)執(zhí)行結(jié)果是自動處理HTTP HEAD操作,這個方法不需要被一個子類執(zhí)行。

?????? 4、doOptions

?????? protected void doOptions(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP OPTION操作。這個操作自動地決定支持哪一種HTTP方法。例如,一個Servlet寫了一個HttpServlet的子類并重載了doGet方法,doOption會返回下面的頭:

?????? Allow: GET,HEAD,TRACE,OPTIONS

?????? 你一般不需要重載這個方法。

?????? 5、doPost

?????? protected void doPost(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP POST操作。這個操作包含請求體的數(shù)據(jù),Servlet應(yīng)該按照他行事。

?????? 這個操作可能有負(fù)面影響。例如更新存儲的數(shù)據(jù)或在線購物。

?????? 這一方法的默認(rèn)執(zhí)行結(jié)果是返回一個HTTP BAD_REQUEST錯誤。當(dāng)你要處理POST操作時,你必須在HttpServlet的子類中重載這一方法。

?????? 6、doPut

?????? protected void doPut(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP PUT操作。這個操作類似于通過FTP發(fā)送文件。

?????? 這個操作可能有負(fù)面影響。例如更新存儲的數(shù)據(jù)或在線購物。

?????? 這一方法的默認(rèn)執(zhí)行結(jié)果是返回一個HTTP BAD_REQUEST錯誤。當(dāng)你要處理PUT操作時,你必須在HttpServlet的子類中重載這一方法。

?????? 7、doTrace

?????? protected void doTrace(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? 被這個類的service方法調(diào)用,用來處理一個HTTP TRACE操作。這個操作的默認(rèn)執(zhí)行結(jié)果是產(chǎn)生一個響應(yīng),這個響應(yīng)包含一個反映trace請求中發(fā)送的所有頭域的信息。

?????? 當(dāng)你開發(fā)Servlet時,在多數(shù)情況下你需要重載這個方法。

?????? 8、getLastModified

?????? protected long getLastModified(HttpServletRequest request);

?????? 返回這個請求實(shí)體的最后修改時間。為了支持GET操作,你必須重載這一方法,以精確地反映最后修改的時間。這將有助于瀏覽器和代理服務(wù)器減少裝載服務(wù)器和網(wǎng)絡(luò)資源,從而更加有效地工作。返回的數(shù)值是自1970-1-1日(GMT)以來的毫秒數(shù)。

默認(rèn)的執(zhí)行結(jié)果是返回一個負(fù)數(shù),這標(biāo)志著最后修改時間未知,它也不能被一個有條件的GET操作使用。

?????? 9、service

?????? protected void service(HttpServletRequest request,

???????????? HttpServletResponse response) throws ServletException,

???????????? IOException;

?????? public void service(ServletRequest request, ServletResponse response)

???????????? throws ServletException, IOException;

?????? 這是一個Servlet的HTTP-specific方案,它分配請求到這個類的支持這個請求的其他方法。

?????? 當(dāng)你開發(fā)Servlet時,在多數(shù)情況下你不必重載這個方法。

?

2.20?????? HttpSessionBindingEvent類

?????? 定義

?????? public class HttpSessionBindingEvent extends EventObject

?????? 這個事件是在監(jiān)聽到HttpSession發(fā)生綁定和取消綁定的情況時連通HttpSessionBindingListener的。這可能是一個session被終止或被認(rèn)定無效的結(jié)果。

?????? 事件源是HttpSession.putValue或HttpSession.removeValue。

?????? 構(gòu)造函數(shù)

?????? public HttpSessionBindingEvent(HttpSession session, String name);

?????? 通過引起這個事件的Session和發(fā)生綁定或取消綁定的對象名構(gòu)造一個新的HttpSessionBindingEvent。

?????? 方法

?????? 1、getName

?????? public String getName();

?????? 返回發(fā)生綁定和取消綁定的對象的名字。

?????? 2、getSession

?????? public HttpSession getSession();

?????? 返回發(fā)生綁定和取消綁定的session的名字。

?

2.21?????? HttpUtils類

?????? 定義

?????? public class HttpUtils

?????? 收集HTTP Servlet使用的靜態(tài)的有效的方法。

?????? 方法

?????? 1、getRequestURL

?????? public static StringBuffer getRequestURL(HttpServletRequest

???????????? request);

?????? 在服務(wù)器上重建客戶端用來建立請求的URL。這個方法反映了不同的協(xié)議(例如http和https)和端口,但不包含查詢字符串。

?????? 這個方法返回一個StringBuffer而不是一個String,這樣URL可以被Servlet開發(fā)者有效地修改。

?????? 2、parsePostData

?????? public static Hashtable parsePostData(int len,

???????????? ServletInputstream in);

?????? 解析一個包含MIME類型application/x-www-form-urlencoded的數(shù)據(jù)的流,并創(chuàng)建一個具有關(guān)鍵值-數(shù)據(jù)對的 hash table。這里的關(guān)鍵值是字符串,數(shù)據(jù)是該字符串所對應(yīng)的值的列表。一個關(guān)鍵值可以在POST的數(shù)據(jù)中出現(xiàn)一次或多次。這個關(guān)鍵值每出現(xiàn)一次,它的相應(yīng)的值就被加入到hash table中的字符串所對應(yīng)的值的列表中。

?????? 從POST數(shù)據(jù)讀出的數(shù)據(jù)將經(jīng)過URL解碼,+將被轉(zhuǎn)換為空格以十六進(jìn)制傳送的數(shù)據(jù)(例如%xx)將被轉(zhuǎn)換成字符。

?????? 當(dāng)POST數(shù)據(jù)無效時,該方法拋出一個IllegalArgumentException。

?????? 3、parseQueryString

?????? public static Hashtable parseQueryString(String s);

?????? 解析一個查詢字符串,并創(chuàng)建一個具有關(guān)鍵值-數(shù)據(jù)對的hash table。這里的數(shù)據(jù)是該字符串所對應(yīng)的值的列表。一個關(guān)鍵值可以出現(xiàn)一次或多次。這個關(guān)鍵值每出現(xiàn)一次,它的相應(yīng)的值就被加入到hash table中的字符串所對應(yīng)的值的列表中。

?????? 從查詢字符串讀出的數(shù)據(jù)將經(jīng)過URL解碼,+將被轉(zhuǎn)換為空格以十六進(jìn)制傳送的數(shù)據(jù)(例如%xx)將被轉(zhuǎn)換成字符。

?????? 當(dāng)查詢字符串無效時,該方法拋出一個IllegalArgumentException。

?

術(shù)語表

bytecode

?????? 字節(jié)碼:由Java編譯器和Java解釋程序生成的機(jī)器代碼。

cookie

?????? 由Web服務(wù)器建立的數(shù)據(jù),該數(shù)據(jù)存儲在用戶的計(jì)算機(jī)上,提供了一個Web站點(diǎn)跟蹤用戶的參數(shù)并存儲在用戶自己硬盤上的方法。

HTTP

?????? 超文本傳輸協(xié)議。一個請求響應(yīng)協(xié)議用來連接WWW服務(wù)器向客戶端瀏覽器傳輸HTML頁面。

輸入流對象

? ? ? ?一個對象,由ServletInputStream類定義,被Servlet用來從客戶端讀取請求。

映射

?????? 由Servlet實(shí)例和Servlet返回數(shù)據(jù)的URL組成的一對,例如,HelloServlet和/hello/index.html。

輸出流對象

? ? ? ?一個對象,由ServletOutputStream class類定義,被Servlet用來向客戶端返回數(shù)據(jù)。

request dispatcher object

?????? 由RequestDispatcher接口定義的一個對象,用來從客戶端接收請求,并將其發(fā)送到Web服務(wù)器上可用的其他資源(例如Servlet、CGI、HTML文件或JSP文件)。

sandboxed servlet

?????? 在一個安全性約束下運(yùn)行的Servlet。

servlet

? ? ? ?一個小的,具有平臺無關(guān)性的,沒有圖形用戶界面的Java程序。它可以在許多方面擴(kuò)充Web服務(wù)的功能。

servlet configuration object

?????? ServletConfig接口定義的一個對象,用來配置一個Servlet。

servlet context object

?????? ServletContext接口定義的一個對象。給予Servlet有關(guān)Servlet引擎的信息。

servlet引擎

?????? 由Web服務(wù)器提供商制作的一個環(huán)境,可以允許Servlet在具體的Web服務(wù)器上運(yùn)行。

servlet請求對象

?????? 由ServletRequest接口定義的一個對象,允許Servlet獲得用關(guān)客戶端請求的數(shù)據(jù)。

servlet response object

?????? 由ServletResponse接口定義的一個對象,允許Servlet作出響應(yīng)。

servlet runner

? ? ? ?Java Servlet Developer’s Kit (JSDK)中的sun.servlet.http.HttpServer過程,它使得Servlet得以運(yùn)行。

會話跟蹤

?????? 在一個Web應(yīng)用程序中,識別一個從同一個客戶端發(fā)出的連續(xù)的唯一的請求的能力。

SSL

?????? 加密套接字協(xié)議層。一個安全協(xié)議,用來在Iternet上的客戶端瀏覽器和服務(wù)器交換密鑰和加密數(shù)據(jù)。

URI

?????? 統(tǒng)一資源標(biāo)識。定義一個Internet地址,它是一個URL的超集。

URL

?????? 統(tǒng)一資源路徑。這個地址定義了到達(dá)一個WWW上的文件的路線,通常由協(xié)議前綴、域名、目錄名和文件名組成。

?

轉(zhuǎn)載于:https://www.cnblogs.com/haimishasha/p/5609261.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的Java Servlet API中文说明文档的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

91九色最新地址 | 在线成人看片 | 免费视频成人 | av丁香花| 日韩av电影中文字幕在线观看 | 婷婷六月在线 | 日本在线观看中文字幕 | 狠狠的日 | 中文字幕av一区二区三区四区 | 在线免费视频a | 综合色综合色 | 欧美二区在线播放 | 三级黄在线 | 6080yy精品一区二区三区 | 久久精品站 | 又黄又爽又色无遮挡免费 | 欧美最猛性xxx | 日本久久成人 | 91久久影院| av观看网站 | 久久久网址| 欧美日韩免费观看一区=区三区 | 国产青春久久久国产毛片 | 精品成人久久 | 在线国产视频一区 | 日韩av手机在线观看 | 97精产国品一二三产区在线 | 久久伊人精品一区二区三区 | 免费av在线网站 | 伊人超碰在线 | 欧美精品免费在线 | www91在线| 国产午夜一区二区 | 五月婷婷在线视频观看 | 一区二区久久久久 | 成人电影毛片 | 97在线观看免费高清 | 国产亚洲精品xxoo | 久久久久黄色 | 99精品视频精品精品视频 | 久久精品一区 | 插久久| 国产精品自产拍在线观看网站 | 欧美性超爽 | 久久精品日产第一区二区三区乱码 | 一区二区三区四区在线免费观看 | 精品久久久久一区二区国产 | 黄色免费大全 | 在线成人观看 | 午夜精品久久久久久久久久久久久久 | 亚洲午夜激情网 | 久久久免费精品国产一区二区 | 一级片黄色片网站 | 日韩欧美视频免费观看 | 精品一区二区电影 | 国产一区国产精品 | 中文字幕91视频 | 欧美日韩国产亚洲乱码字幕 | 青草草在线视频 | 91亚洲在线观看 | 美女视频是黄的免费观看 | 超碰个人在线 | 天天躁天天躁天天躁婷 | 综合天天久久 | 色婷婷综合视频在线观看 | 国产精品成人久久久久 | 国产精品久久久久婷婷二区次 | 亚洲精品视频偷拍 | 精品亚洲成a人在线观看 | 黄网站免费久久 | 精品久久久久亚洲 | 四川妇女搡bbbb搡bbbb搡 | 国产日韩欧美在线免费观看 | 国产黄色片久久 | 九色91在线视频 | 视频在线一区二区三区 | 日韩在线视频播放 | 日韩理论片在线 | 国产精品久久久久久久av电影 | 亚洲乱码中文字幕综合 | wwwwwww黄 | 黄色在线观看网站 | 色噜噜日韩精品一区二区三区视频 | 久久精品女人毛片国产 | 99在线热播 | 超级av在线 | 黄a网 | 婷婷在线免费视频 | 久久久久久久久综合 | 天天插天天狠天天透 | 777xxx欧美 | 日韩精品中文字幕一区二区 | 91视频久久| www色| 久久新 | 97色婷婷成人综合在线观看 | 国产在线小视频 | 免费在线成人av电影 | 国产成人精品综合 | 久久久免费毛片 | 久久亚洲免费 | 玖玖国产精品视频 | 玖玖在线观看视频 | 国产无套精品久久久久久 | 国产91丝袜在线播放动漫 | 欧美日韩国产在线观看 | 黄色一级在线视频 | 91资源在线 | 免费一级片在线 | 国产精品久久久久国产精品日日 | 热精品 | 久久av一区二区三区亚洲 | 精品欧美一区二区三区久久久 | 99久久精品免费看国产 | 色综合亚洲精品激情狠狠 | 最近中文字幕国语免费av | 超碰在线免费福利 | 久久一精品 | 日本h在线播放 | 国产高清免费观看 | 视频二区在线 | 中文在线免费视频 | 国内精品久久久久影院优 | 成人va天堂 | 国产精品毛片一区二区在线 | 99性视频 | 一区二区精品久久 | 国产成人精品一区二区三区网站观看 | 天天翘av | 成+人+色综合 | av电影在线观看完整版一区二区 | 国产成人av综合色 | 911免费视频 | 久久久久蜜桃 | 在线视频婷婷 | 久久精品精品电影网 | av久久久 | 天天射,天天干 | 久操视频在线观看 | 欧美日韩国产精品一区二区亚洲 | 夜夜躁狠狠躁日日躁视频黑人 | www.福利视频 | 极品嫩模被强到高潮呻吟91 | a'aaa级片在线观看 | 天天干天天拍天天操 | 91精品区| 在线国产日本 | 免费看片网站91 | 黄网站免费看 | 亚欧洲精品视频在线观看 | 免费 在线 中文 日本 | 最近日本韩国中文字幕 | 韩国一区二区av | 波多野结衣精品视频 | 99国产高清 | 中文字幕在线观看亚洲 | 天天天天爽| 国产一级一片免费播放放a 一区二区三区国产欧美 | 天天插天天爽 | www,黄视频 | 亚州精品天堂中文字幕 | 黄色av免费在线 | 在线看的毛片 | 日韩精品一区二区免费视频 | 欧美精彩视频 | 五月天激情视频在线观看 | 亚洲国产精久久久久久久 | 综合五月婷婷 | 九九热精品国产 | 国产精品久久久久久欧美 | 狠狠狠色丁香婷婷综合久久88 | 91精品国产一区二区在线观看 | 91视频91自拍| 九九爱免费视频在线观看 | 91人人干 | 97超碰在线久草超碰在线观看 | 人人爽爽人人 | 久草免费色站 | 精品美女在线视频 | 国产91精品看黄网站 | 日韩欧美观看 | 九七视频在线观看 | 亚洲天天在线 | 国产福利小视频在线 | www.com在线观看 | 中文字幕在线观看的网站 | 久久综合欧美 | 欧美日韩高清免费 | 国产91影视| 激情五月五月婷婷 | 丁香婷婷综合激情五月色 | 国产黄色看片 | 欧美老人xxxx18 | 成人国产网站 | 精品在线99 | av免费观看在线 | 韩国在线一区 | 美女视频免费一区二区 | 中文字幕色在线 | 午夜精品一区二区三区可下载 | 亚洲精品成人 | av在线日韩 | 亚洲精品小区久久久久久 | 国产一区视频导航 | 久久国产精品久久w女人spa | 日韩欧美在线中文字幕 | 91av免费观看 | 欧美精品小视频 | 91精品国产91久久久久福利 | 麻豆国产精品视频 | 99在线视频免费观看 | 色资源网免费观看视频 | 五月婷婷综合在线观看 | 成人黄色一级视频 | 99九九热只有国产精品 | 久久精品久久精品 | 国产精品久久久久四虎 | 精品99久久久久久 | 中文字幕 第二区 | 91最新网址在线观看 | 最近免费中文字幕mv在线视频3 | 国产看片网站 | 久久公开视频 | 五月婷婷色 | 99久e精品热线免费 99国产精品久久久久久久久久 | 男女免费视频观看 | 天天插日日射 | 国产人免费人成免费视频 | 99精品欧美一区二区 | 久久精品国产亚洲精品 | 婷婷成人亚洲综合国产xv88 | 日本久久久久久久久久久 | 高清av中文字幕 | 久久综合影音 | 2022中文字幕在线观看 | 九九久久影视 | 久久公开免费视频 | 91中文字幕在线播放 | 成人av在线影院 | 狠狠狠色丁香综合久久天下网 | 久久午夜电影 | 欧美调教网站 | 999久久国精品免费观看网站 | 亚洲精品午夜国产va久久成人 | 午夜色婷婷 | 亚洲小视频在线观看 | 中文字幕在线播出 | 国产成人黄色片 | 欧美午夜激情网 | 又紧又大又爽精品一区二区 | 九九久久精品 | 久久香蕉电影网 | 国产在线观看你懂得 | 99国产免费网址 | 国内精品视频免费 | 国产精品一区二区久久国产 | 国产精品自产拍在线观看桃花 | av无限看| 国产精品mv | 亚洲精品视频在线免费 | 99视频在线免费 | 国产在线观看中文字幕 | 亚洲精品视频大全 | 国产精品 美女 | 在线观看日本韩国电影 | 在线看日韩 | 国产精品1区2区在线观看 | 在线成人av | 久久69精品久久久久久久电影好 | 中文字幕av日韩 | 一区中文字幕电影 | 黄色亚洲大片免费在线观看 | 一区二区精品在线 | 五月婷婷色综合 | 久草久草在线 | 精品免费观看视频 | 在线免费看黄色 | 免费三级av| 免费看国产精品 | 九九热在线精品视频 | 成人国产精品电影 | 天天激情综合 | 婷婷在线视频 | 国产又粗又猛又黄又爽的视频 | 五月激情天 | 黄色av一区二区三区 | 人人澡人人澡人人 | www.com黄色| 亚洲欧洲av在线 | 在线观看国产一区二区 | 欧美一级久久 | 99re8这里有精品热视频免费 | 国产 亚洲 欧美 在线 | 国产亚洲精品无 | 波多野结衣久久精品 | 国产亚洲精品久久19p | 国产精品免费久久久 | 麻豆传媒一区二区 | 精品福利在线视频 | 久久久免费国产 | 97在线看| 精品视频久久 | 波多野结衣在线视频一区 | 亚洲精品视频大全 | 国产日韩精品一区二区 | 日韩中文字幕免费视频 | 波多野结衣电影一区二区三区 | 国产一二区视频 | 麻豆传媒视频在线免费观看 | 日韩免费| 免费观看性生活大片 | 日韩在线精品一区 | 日韩电影久久久 | 天天操夜夜叫 | 欧美精品国产精品 | 成人网在线免费视频 | 精品国产一区二区三区久久久 | 五月婷婷视频在线观看 | 深爱激情五月综合 | 久久亚洲综合色 | 热re99久久精品国产66热 | 国产精品毛片久久久久久久久久99999999 | 国产黄色精品在线观看 | 欧美网站黄色 | 国产一级片观看 | 九色琪琪久久综合网天天 | 亚洲国产成人av网 | 在线成人短视频 | 最新一区二区三区 | 人人爽人人| 久久免费观看少妇a级毛片 久久久久成人免费 | a色视频| 精品九九九九 | 色吊丝在线永久观看最新版本 | 手机成人av在线 | 97在线视频网站 | 中文字幕第一页在线 | 激情欧美一区二区免费视频 | 免费观看黄 | 亚洲综合色av | 天天操天天射天天操 | 亚洲老妇xxxxxx | 久久午夜精品视频 | 中文字幕免费高清在线观看 | av电影免费观看 | 亚洲综合视频网 | 中文字幕在线久一本久 | 国产精品久久在线观看 | 免费看av片网站 | 九九免费在线观看视频 | 久久狠狠干 | 人人插人人艹 | 国产电影黄色av | 四虎影视成人永久免费观看亚洲欧美 | 亚洲第一成网站 | 国产 亚洲 欧美 在线 | 午夜精品一区二区国产 | 国产精美视频 | 丰满少妇一级片 | 中文字幕精品一区二区精品 | 片网站 | 一级黄色片在线免费观看 | 国产专区视频 | 激情av在线播放 | 韩国av在线 | 97超视频免费观看 | 日韩欧美一区二区在线观看 | 一区二区三区播放 | 午夜国产在线 | 麻豆成人小视频 | 青青河边草观看完整版高清 | 久久亚洲私人国产精品va | 久草新在线 | 黄色a在线观看 | 国产老妇av | 绯色av一区| 亚洲 欧美变态 另类 综合 | 精品一区二区在线免费观看 | 国产欧美综合视频 | 亚洲精品一区二区在线观看 | 免费av一级电影 | 日韩一区在线播放 | 国产91成人| 看片一区二区三区 | 国产在线一区二区 | 97免费| 国产乱对白刺激视频不卡 | 欧美一二三区在线播放 | 久久久午夜电影 | 国产又粗又猛又黄又爽的视频 | 日日草视频 | 欧美日韩一区二区免费在线观看 | 亚州国产精品久久久 | 国产精品日韩久久久久 | 五月综合婷 | 成人网页在线免费观看 | 日韩免费一区二区在线观看 | 精品一区中文字幕 | 天天操天天色天天射 | 日韩爱爱片 | 欧美性黑人 | 成人在线播放网站 | 九九综合久久 | 国产精品久久久区三区天天噜 | 久久精品视频在线 | 最新的av网站| 国产一区视频在线观看免费 | 免费看黄在线网站 | 国产精品白丝av | 免费看成人 | 在线探花| 欧美怡红院| 日韩电影精品一区 | 亚洲网站在线 | 视频在线观看99 | 国产成人一区二区三区在线观看 | 午夜 在线| 天天操网站 | 国产精品视频免费看 | 久久丁香网 | 亚洲国产日韩欧美 | 99热.com| 精品视频一区在线 | 蜜臀久久99静品久久久久久 | 久久经典国产视频 | 国产精品v欧美精品 | 久久久久久久久久久久99 | 免费成人短视频 | 九九精品在线观看 | 九九精品毛片 | 国内成人精品视频 | 狠狠干夜夜 | 国产xxxx做受性欧美88 | 午夜影视一区 | 国产精品美女久久久久久免费 | 国产成人精品午夜在线播放 | 久久久亚洲麻豆日韩精品一区三区 | 天天操夜夜操夜夜操 | 久久精品久久精品久久 | 欧美日高清视频 | 免费成人在线观看视频 | 日本一区二区免费在线观看 | 国产一区二区三区久久久 | 97碰碰精品嫩模在线播放 | 91麻豆精品国产91久久久久久 | 96久久欧美麻豆网站 | 成人黄色电影在线播放 | 日韩av线观看 | 91最新地址永久入口 | 免费看麻豆 | 一区二区三区四区久久 | 中文字幕观看在线 | 超碰午夜 | 在线看的av网站 | 久久免费一级片 | 2023av| 蜜桃视频在线观看一区 | 最近中文字幕视频完整版 | 国产一二区在线观看 | 午夜精品一区二区三区在线播放 | 亚洲区另类春色综合小说校园片 | 婷婷六月丁香激情 | 欧美日韩一区二区三区视频 | 天天综合网~永久入口 | 四虎永久精品在线 | 亚洲日本中文字幕在线观看 | 久久国产精品第一页 | 国产成在线观看免费视频 | 精品国产一区二区三区免费 | 中文字幕日韩国产 | 视频一区二区精品 | a久久久久久 | 国产剧情一区在线 | 久久99久久久久久 | 亚洲理论电影 | 国产精品毛片网 | 五月婷婷视频在线观看 | 狠狠操导航 | 中文字幕在线日本 | 久久综合免费视频影院 | 久草在线一免费新视频 | 这里只有精彩视频 | 99视频在线观看一区三区 | 欧美一二三四在线 | 色天天综合网 | 国产日韩中文字幕在线 | 天天干天天看 | 国产一区二区三区免费在线观看 | 亚洲乱码精品 | av一级二级 | 综合久久久久久 | 手机成人av在线 | 亚洲成人网av | 在线观看你懂的网址 | 激情丁香综合 | 国产一二区视频 | 久久久久免费观看 | 欧美午夜一区二区福利视频 | 国产理论一区二区三区 | 国产 欧美 日本 | 国产精品高清一区二区三区 | 成人国产精品一区 | 91在线视频免费观看 | av大全免费在线观看 | 国内免费久久久久久久久久久 | 国产视频 亚洲精品 | 日韩最新在线 | 在线视频欧美日韩 | 91片在线观看 | 成人在线免费观看视视频 | 久久久www成人免费毛片 | 欧美日韩国产一区二区三区在线观看 | 欧美一级片 | 欧美精品久久99 | 亚洲中字幕 | 欧美天天射 | 色婷婷激婷婷情综天天 | 国产视频一区二区三区在线 | 狠狠色噜噜狠狠狠狠2022 | 97在线观看免费高清 | 亚洲老妇xxxxxx | 99精品视频在线 | 亚洲精品免费观看视频 | 美女视频久久 | 最新国产福利 | 91传媒激情理伦片 | 日韩欧美在线观看一区 | 蜜臀一区二区三区精品免费视频 | 不卡中文字幕在线 | 青青草国产精品视频 | 日本中文字幕系列 | 中文字幕中文字幕中文字幕 | 波多野结衣精品在线 | 中文字幕免费播放 | 黄影院| 久久99久久99精品免观看粉嫩 | 日韩精品高清不卡 | 男女视频91 | 国产美女视频免费观看的网站 | 涩涩色亚洲一区 | 99视频精品全部免费 在线 | 国产免费a | 91系列在线观看 | 久久成人麻豆午夜电影 | 欧美色综合| 激情视频在线高清看 | 精品视频久久 | 91精品在线播放 | 久久精品日产第一区二区三区乱码 | 欧美日韩超碰 | 999男人的天堂 | 国产免费观看久久 | 国产视频美女 | 成人久久久久久久久 | 国产伦精品一区二区三区高清 | 黄p在线播放 | 久久精品视频播放 | 中文字幕欧美激情 | 精品视频在线视频 | 黄色小说在线免费观看 | 亚洲国产美女久久久久 | 国产成人久久久77777 | 狠狠色婷婷丁香六月 | 国产中文字幕在线观看 | 欧美性生活免费看 | 五月天婷婷在线观看视频 | 在线视频免费观看 | 日批网站在线观看 | 亚洲视屏一区 | 亚洲精品资源 | 九七人人干 | 久久免费视频网 | 久久天天躁夜夜躁狠狠躁2022 | 在线观看黄色 | 五月婷婷亚洲 | 91九色免费视频 | av电影中文字幕 | 天天久久夜夜 | 日韩国产精品一区 | 日韩成人精品一区二区 | 天天色 天天 | 成人av午夜 | 国产成人在线看 | 久久精品一级片 | 成人一区影院 | 香蕉视频久久 | 99国产一区二区三精品乱码 | 日韩免费av网址 | 激情网在线观看 | 国产综合精品久久 | 天天摸夜夜操 | 视频一区二区国产 | 久草在线在线 | 狠狠色伊人亚洲综合网站野外 | 国产精品高清免费在线观看 | 免费网址在线播放 | 日韩精品欧美一区 | 中文字幕在线免费看线人 | 三级视频日韩 | 国产成人精品电影久久久 | 操操爽| 成人国产在线 | 黄色av播放| 99re热精品视频 | 4hu视频 | 欧洲一区精品 | 国产精品黄网站在线观看 | 久人人 | 综合天天网| 欧美与欧洲交xxxx免费观看 | 亚洲国产精品成人综合 | 亚洲激情六月 | 免费视频二区 | 久久tv| 成人精品国产免费网站 | www.天天色| 久久夜夜操 | 日韩理论片在线 | 伊人视频 | 国产精品一区二区av | 美女黄视频免费看 | 国产精品成人国产乱一区 | 夜夜躁狠狠燥 | 久久在现| 夜夜躁日日躁狠狠久久av | 九九视频这里只有精品 | 波多野结衣精品在线 | 国产精品嫩草影院99网站 | 婷婷丁香在线 | 人成免费网站 | .精品久久久麻豆国产精品 亚洲va欧美 | 人人爽久久涩噜噜噜网站 | 日韩精品2区 | 韩国av一区二区三区 | 久久精品视频日本 | 中文字幕a在线 | 国产视频久久 | 国内精品免费久久影院 | 国产精品18久久久久久首页狼 | 天天做天天爱夜夜爽 | 狠狠干网 | 午夜久久久精品 | 91九色精品女同系列 | 国产色视频一区二区三区qq号 | 中文字幕一区二区三区四区视频 | 四虎永久网站 | 久久国产手机看片 | 亚洲免费公开视频 | 精品视频在线观看 | 国产偷国产偷亚洲清高 | 99在线观看视频网站 | 亚洲天堂网在线视频观看 | 国产精品av电影 | 在线不卡中文字幕播放 | 狠狠地操 | 五月开心色 | 欧美黄网站 | 69中文字幕 | 色婷婷狠狠五月综合天色拍 | 欧美日韩久久久 | 四虎www| 99视频在线免费观看 | 午夜少妇一区二区三区 | 一级片免费视频 | www.色com| 美女黄网站视频免费 | 成年人视频免费在线 | 99视频在线看 | 免费黄色av | 国产精品第二十页 | 国产精品99爱 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 中文字幕国产视频 | 在线免费视频一区 | av视屏在线 | 天天爽夜夜爽人人爽一区二区 | 成人亚洲精品国产www | 国产精品一区二区三区在线免费观看 | 四虎在线免费观看 | 热re99久久精品国产66热 | 国产精品1区2区3区 久久免费视频7 | 日韩专区一区二区 | 中文字幕亚洲综合久久五月天色无吗'' | 一区二区视 | 韩国av免费在线 | 中文字幕有码在线 | 在线观看欧美成人 | 97热视频 | 久久久久久久久艹 | 在线观看视频国产一区 | 亚洲最大成人网4388xx | 国产精品人人做人人爽人人添 | 中文av一区二区 | 亚洲国产电影在线观看 | 99久久毛片 | 91超碰免费在线 | 99精品成人| 日韩精品一区二区三区免费观看 | 一本色道久久综合亚洲二区三区 | 91丨九色丨勾搭 | 香蕉久草| www.天天射| 日韩xxxbbb| 欧美日韩精品在线一区二区 | 久久一线| 人人爽人人爱 | 色国产视频 | 亚洲三级网站 | av在线日韩 | 西西www4444大胆视频 | avav片| 亚洲国产精品久久 | 久久国产精品小视频 | 国产免费小视频 | 国产在线第三页 | 91精品国产乱码在线观看 | 国产一级免费在线观看 | 国产久视频 | 欧美日韩视频免费看 | 人人爽人人做 | 成人午夜电影网站 | 久草视频免费 | 深爱激情丁香 | 午夜 在线| 亚洲激情在线观看 | 91麻豆精品国产91久久久更新时间 | 欧美一级电影在线观看 | 黄在线免费看 | 奇米网在线观看 | 丁香婷婷激情国产高清秒播 | 久久综合精品国产一区二区三区 | 亚洲黄色app| 国产精品大尺度 | 色欧美视频 | 午夜a区| av综合站 | 久久人人爽人人爽 | 射久久久 | 99久久网站| 国内久久久久久 | 久久人人添人人爽添人人88v | 毛片.com | 午夜av激情| 亚洲欧洲精品一区二区 | 狠狠狠色丁香综合久久天下网 | 免费国产亚洲视频 | 十八岁免进欧美 | 日韩电影一区二区三区 | 久久精品人人做人人综合老师 | 亚洲aaa级| 精品一区二区久久久久久久网站 | 欧美与欧洲交xxxx免费观看 | 国产精品久久久久毛片大屁完整版 | 一区二区三区免费看 | 午夜私人影院久久久久 | 日本久久影视 | 91片黄在线观 | 国精产品999国精产品岳 | 成人精品999| 欧美日韩综合在线 | 区一区二区三区中文字幕 | 婷婷丁香激情五月 | 美女av免费看 | 日韩va欧美va亚洲va久久 | 亚洲特级片 | 欧美不卡视频在线 | 久久黄网站 | 91精品天码美女少妇 | 亚洲无吗视频在线 | 欧美日本不卡 | 又黄又刺激视频 | 香蕉影视在线观看 | 美女网站黄免费 | 免费开视频 | 天天射天天操天天干 | 天天夜夜操 | 91亚洲精品久久久久图片蜜桃 | 亚洲成人av片 | 久久综合狠狠综合 | 麻豆传媒电影在线观看 | 免费av观看 | 亚洲精品乱码久久久久久蜜桃欧美 | 麻豆精品传媒视频 | 成人免费观看av | 中文字幕久久精品一区 | 国产日韩欧美在线看 | 视频在线观看入口黄最新永久免费国产 | 粉嫩av一区二区三区四区在线观看 | 伊人午夜 | 天天爱天天射 | 欧美日韩一区二区免费在线观看 | www.久久久.cum | 亚洲日本精品视频 | 日本中文字幕系列 | 色婷婷电影 | 欧美日韩在线精品 | 男女视频久久久 | 欧美性高跟鞋xxxxhd | 中文字幕视频播放 | 在线观看播放av | 色五月情 | 欧洲色吧 | 91最新地址永久入口 | 免费看一级黄色 | 国产伦精品一区二区三区免费 | 欧美成人手机版 | 国产午夜精品一区 | 久久综合色综合88 | 99视频免费播放 | 久久一区二区三区四区 | 美女网站色在线观看 | 精品久久久久久久久中文字幕 | 66av99精品福利视频在线 | 亚洲电影一级黄 | 免费色视频网址 | 亚洲免费在线播放视频 | 久久国产经典 | 99成人免费视频 | www.av在线.com| 色婷婷亚洲 | 99精品国产福利在线观看免费 | 欧美坐爱视频 | 久久综合欧美 | 国产生活一级片 | 久久在视频 | 日韩伦理一区二区三区av在线 | 欧美三级高清 | 911国产在线观看 | 成人精品国产免费网站 | 久久久久久久国产精品 | 日韩在线欧美在线 | 最近日本韩国中文字幕 | 中文字幕在线观看一区二区 | 九九热国产视频 | 人人看黄色 | 丁香花在线观看免费完整版视频 | 免费成人结看片 | 91高清免费看 | 国产精品美女久久久免费 | 西西444www高清大胆 | 国产精品黑丝在线观看 | 久久免费精品一区二区三区 | 美女黄久久 | 999抗病毒口服液 | 精品亚洲午夜久久久久91 | 中文字幕在线观看的网站 | 在线亚洲精品 | 国产成人精品女人久久久 | 色综合天天做天天爱 | 久久午夜电影网 | 五月激情亚洲 | 999成人| 日韩中文字幕在线不卡 | 欧美a级片免费看 | 又黄又爽又刺激的视频 | 日韩av在线免费看 | www.伊人色.com| 亚洲综合精品在线 | 精品视频区 | 特级黄色片免费看 | 国产手机av | 中文字幕色综合网 | 久久免费视频99 | 国产在线视频不卡 | 精品免费一区二区三区 | 色网站在线免费观看 | 三日本三级少妇三级99 | 国产精品乱码在线 | 96国产在线 | 欧美日韩视频在线观看一区二区 | 综合网欧美 | 9色在线视频| 日韩免费高清 | 伊人五月天婷婷 | 高潮毛片无遮挡高清免费 | 天堂在线一区 | 黄色在线看网站 | 久久成人欧美 | 一区二区三区在线免费播放 | 欧美一二区在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 五月天激情综合网 | 欧美久久久一区二区三区 | 国产在线观看免费av | 国产一级特黄毛片在线毛片 | 国产精品一区二区免费在线观看 | 中文字幕九九 | 亚洲一区二区三区在线看 | 日韩欧美成 | 国产人成一区二区三区影院 | 五月开心六月伊人色婷婷 | 日本性视频 | 久久在线一区 | 欧美做受69 | 久久情侣偷拍 | 九九在线高清精品视频 | 国产经典三级 | 精品久久久久久久久久国产 | 免费日韩一区二区三区 | 中文乱码视频在线观看 | 一区二区三区在线影院 | 97国产精品久久 | 日韩免费电影一区二区三区 | 97精品国产91久久久久久 | 婷婷电影在线观看 | 9797在线看片亚洲精品 | 日韩午夜在线播放 | 岛国av在线不卡 | av福利在线免费观看 | 成人免费网站视频 | av资源中文字幕 | 美女黄视频免费看 | 91系列在线 | 97国产电影 | 欧美日韩国产精品一区 | 成人性生交大片免费看中文网站 | 久久国产精品小视频 | 国产视频一区在线 | 91精品区 | 日韩欧美在线中文字幕 | 国产黄在线观看 | 久久久久久久亚洲精品 | 久草91视频 | 日韩av有码在线 | 国产精品热 | 日韩a在线观看 | 四虎成人精品在永久免费 | 啪啪肉肉污av国网站 | 午夜精品福利一区二区三区蜜桃 | 又黄又爽又湿又无遮挡的在线视频 | 天天色天天上天天操 | 一级片视频免费观看 | 肉色欧美久久久久久久免费看 | 国产一区观看 | 亚洲少妇久久 | 婷婷精品在线 | 国产在线观看一区 | 亚洲资源片| 日韩欧美视频在线 | 久久99国产精品免费 | 黄网站免费久久 | 91麻豆精品国产自产 | av网站在线观看播放 | 色综久久| 免费精品在线视频 | 狠狠狠色丁香婷婷综合激情 | 波多野结衣精品视频 | 天天综合天天做 | 91亚色视频 | 日b视频国产 | 久精品在线 | 成人精品99| 日韩一级电影网站 | 欧美一级在线观看视频 | wwwwwww黄 | 国产在线视频资源 | 亚洲午夜大片 | 亚洲国产日韩一区 | a天堂在线看| 9在线观看免费高清完整版在线观看明 | 久久免费视频网 | 激情电影影院 | 国产精品久久久久av福利动漫 | 色干干 | 亚洲干视频在线观看 | 九色视频自拍 | 国产精品永久免费视频 | 欧美日韩亚洲在线 | 4p变态网欧美系列 | 婷婷激情av | 国精产品一二三线999 | 国产精品免费在线视频 | 黄色大片日本免费大片 | 国产免费一区二区三区最新 | 亚洲va在线va天堂va偷拍 | 天天操天天干天天摸 | 日韩在线视频在线观看 | 成人免费网视频 | 免费av电影网站 | 成人国产精品久久久春色 | 久久好看免费视频 | 成人免费一区二区三区在线观看 | 一区二区视频欧美 | 日韩久久精品一区二区三区 | 麻花豆传媒mv在线观看 | 玖草在线观看 | 99久久成人 | 日韩免费视频观看 | 国偷自产中文字幕亚洲手机在线 | 欧美精品一区二区三区四区在线 | 探花视频在线版播放免费观看 | 色妞色视频一区二区三区四区 | 亚洲精品福利在线观看 | 久久久久久久久毛片 | 久久中国精品 | 国产免码va在线观看免费 | 狠狠狠干 | 在线成人欧美 |