欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Java Servlet API中文說(shuō)明文檔 -
譯者前言:
      近來(lái)在整理有關(guān)Servlet資料時(shí)發(fā)現,在網(wǎng)上竟然找不到一份中文的Java Servlet API的說(shuō)明文檔,而在 有一本有關(guān)JSP的書(shū)后面附的Java Servlet API說(shuō)明竟然不全,而這份文檔的2.1a版在1998年的11月份就已定稿。所以我決定翻譯一 份中文的文檔(其中一些與技術(shù)關(guān)系不大的部分已被略去),有興趣的讀者可以從http: //java.sun.com/products/servlet/2.1/servletspec-2.1.zip下載原文閱讀。

      Java Servlet API說(shuō)明文檔(2.1a版)
      1998年11月

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

      誰(shuí)需要讀這份文檔
      這份文檔描述了Java Servlet API的最新版本2.1版。所以,這本書(shū)對于Servlet的開(kāi)發(fā)者及servlet引擎的開(kāi)發(fā)者同樣適用。

      Java Servlet API的組成
      Java Servlet API由兩個(gè)軟件包組成:一個(gè)是對應HTTP的軟件包,另一個(gè)是不對應HTTP的通用的軟件包。這兩個(gè)軟件包的同時(shí)存在使得Java Servlet API能夠適應將來(lái)的其他請求-響應的協(xié)議。
      這份文檔以及剛才提及的Javadoc格式的文檔都描述了這兩個(gè)軟件包,Javadoc格式的文檔還描述了你應該如何使用這兩個(gè)軟件包中的所有方法。

      有關(guān)規范
       你也許對下面的這些Internet規范感興趣,這些規范將直接影響到Servlet API的發(fā)展和執行。你可以從http: //info.internet.isi.edu/7c/in-notes/rfc/.cache 找到下面提到的所有這些RFC規范。
      RFC 1738 統一資源定位器(URL) 
      RFC 1808 相關(guān)統一資源定位器 
      RFC 1945 超文本傳輸協(xié)議--HTTP/1.0 
      RFC 2045 多用途Internet郵件擴展(多用途網(wǎng)際郵件擴充協(xié)議(MIME))第一部分:Internet信息體格式 
      RFC 2046 多用途Internet郵件擴展(多用途網(wǎng)際郵件擴充協(xié)議(MIME))第二部分:媒體類(lèi)型 
      RFC 2047 多用途網(wǎng)際郵件擴充協(xié)議(MIME)(多用途Internet郵件擴展)第三部分:信息標題擴展用于非ASCII文本 
      RFC 2048 多用途Internet郵件擴展(多用途網(wǎng)際郵件擴充協(xié)議(MIME))第四部分: 注冊步驟 
      RFC 2049 多用途Internet郵件擴展(多用途網(wǎng)際郵件擴充協(xié)議(MIME))第五部分:一致性標準和例子 
      RFC 2068 超文本傳輸協(xié)議 -- HTTP/1.1 
      RFC 2069 一個(gè)擴展HTTP:摘要訪(fǎng)問(wèn)鑒定 
      RFC 2109 HTTP狀態(tài)管理機制 
      RFC 2145 HTTP 版本號的使用和解釋 
      RFC 2324 超文本Coffee Pot控制協(xié)議 (HTCPCP/1.0)
      萬(wàn)維網(wǎng)協(xié)會(huì )(http://www.w3.org)管理著(zhù)這些協(xié)議的規范和執行。


有關(guān)Java Servlets
      JavaTM servlets 是一個(gè)不受平臺約束的Java小程序,它可以被用來(lái)通過(guò)多種方法擴充一個(gè)Web服務(wù)器的功能。你可以把Servlet理解成Server上的 applets,它被編譯成字節碼,這樣它就可以被動(dòng)態(tài)地載入并用效地擴展主機的處理能力。
      Servlet與applets不同的地方是,它不運行在Web瀏覽器或其他圖形化的用戶(hù)界面上。Servlet通過(guò)servlet引擎運行在Web服務(wù)器中,以執行請求和響應,請求、響應的典型范例是HTTP協(xié)議。
       一個(gè)客戶(hù)端程序,可以是一個(gè)Web瀏覽器,或者是非其他的可以連接上Internet的程序,它會(huì )訪(fǎng)問(wèn)Web服務(wù)器并發(fā)出請求。這個(gè)請求被運行在Web服 務(wù)器上的Servlet引擎處理,并返回響應到Servlet。Servlet通過(guò)HTTP將這個(gè)響應轉發(fā)到客戶(hù)端。
在功能上,Servlet與CGI、NSAPI有點(diǎn)類(lèi)似,但是,與他們不同的是:Servlet具有平臺無(wú)關(guān)性。

      Java Servlet概論
      Servlet與其他普通的server擴展機制有以下進(jìn)步:
      因為它采用了不同的進(jìn)程處理模式,所以它比CGI更快。
      它使用了許多Web服務(wù)器都支持的標準的API。
      它繼承了Java的所有優(yōu)勢,包括易升級以及平臺無(wú)關(guān)性。
      它可以調用Java所提供的大量的API的功能模塊。
      這份文檔說(shuō)明了Java Servlet API的類(lèi)和接口的方法。有關(guān)更多的信息,請參看下面的API說(shuō)明。

      Servlet的生命周期
      一個(gè)Java servlet具有一個(gè)生命周期,這個(gè)生命周期定義了一個(gè)Servlet如何被載入并被初始化,如何接收請求并作出對請求的響應,如何被從服務(wù)中清除。Servlet的生命周期被javax.servlet.Servlet這個(gè)接口所定義。
       所有的Java Servlet都會(huì )直接地或間接地執行javax.servlet.Servlet接口,這樣它才能在一個(gè)Servlet引擎中運行。 Servlet引擎是Web 服務(wù)器按照Java Servlet API定制的擴展。Servlet引擎提供網(wǎng)絡(luò )服務(wù),能夠理解MIME請求,并提供一 個(gè)運行Servlet的容器。
      javax.servlet.Servlet接口定義了在Servlet的生命周期中特定時(shí)間以及特定順序被調用的方法。

      Servlet的解析和載入
      Servlet引擎解析并載入一個(gè)Servlet,這個(gè)過(guò)程可以發(fā)生在引擎啟動(dòng)時(shí),需要一個(gè)Servlet去響應請求時(shí),以及在此之間的任何時(shí)候。
      Servlet引擎利用Java類(lèi)載入工具載入一個(gè)Servlet,Servlet引擎可以從一個(gè)本地的文件系統、一個(gè)遠程的文件系統以及網(wǎng)絡(luò )載入Servlet。

      Servlet的初始化
      Servlet引擎載入Servlet后,Servlet引擎必須對Servlet進(jìn)行初始化,在這一過(guò)程中,你可以讀取一些固定存儲的數據、初始化JDBC的連接以及建立與其他資源的連接。
      在初始化過(guò)程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。這樣,Servlet可以對自己進(jìn)行配置。
      init()方法獲得了一個(gè)Servlet配置對象(ServletConfig)。這個(gè)對象在Servlet引擎中執行,并允許Servlet通過(guò)它獲處相關(guān)參數。這個(gè)對象使得Servlet能夠訪(fǎng)問(wèn)ServletContext對象。

      Servlet處理請求
      Servlet被初始化之后,它已經(jīng)可以處理來(lái)自客戶(hù)端的請求,每一個(gè)來(lái)自客戶(hù)端的請求都被描述成一個(gè)ServletRequest對象,Servlet的響應被描述成一個(gè)ServletResponse對象。
      當客戶(hù)端發(fā)出請求時(shí),Servlet引擎傳遞給Servlet一個(gè)ServletRequest對象和一個(gè)ServletResponse對象,這兩個(gè)對象作為參數傳遞到service()方法中。
      Servlet 也可以執行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有權使用客戶(hù)端 發(fā)出的請求。Servlet可以通過(guò)ServletInputStream對象讀取請求信息。
      ServletResponse接口允許Servlet建立響應頭和狀態(tài)代碼。通過(guò)執行這個(gè)接口,Servlet有權使用ServletOutputStream類(lèi)來(lái)向客戶(hù)端返回數據。

      多線(xiàn)程和映射
      在多線(xiàn)程的環(huán)境下,Servlet必須能處理許多同時(shí)發(fā)生的請求。例外的情況是這個(gè)Servlet執行了SingleThreadModel接口,如果是那樣的話(huà),Servlet只能同時(shí)處理一個(gè)請求。
      Servlet依照Servlet引擎的映射來(lái)響應客戶(hù)端的請求。一個(gè)映射對包括一個(gè)Servlet實(shí)例以及一個(gè)Servlet返回數據的URL,例如:HelloServlet with /hello/index.html。
       然而,一個(gè)映射可能是由一個(gè)URL和許多Servlet實(shí)例組成,例如:一個(gè)分布式的Servlet引擎可能運行在不止一個(gè)的服務(wù)器中,這樣的話(huà),每一個(gè) 服務(wù)器中都可能有一個(gè)Servlet實(shí)例,以平衡進(jìn)程的載入。作為一個(gè)Servlet的開(kāi)發(fā)者,你不能假定一個(gè)Servlet只有一個(gè)實(shí)例。

      Servlet的卸載
      Servlet引擎并不必需保證一個(gè)Servlet在任何時(shí)候或在服務(wù)開(kāi)啟的任何時(shí)候都被載入。Servlet引擎可以自由的在任何時(shí)候使用或清除一個(gè)Servlet。因此,我們不能依賴(lài)一個(gè)類(lèi)或實(shí)例來(lái)存儲重要的信息。
      當Servlet引擎決定卸載一個(gè)Servlet時(shí)(例如,如果這個(gè)引擎被關(guān)閉或者需要讓資源),這個(gè)引擎必須允許Servlet釋放正在使用的資源并存儲有關(guān)資料。為了完成以上工作,引擎會(huì )調用Servlet的destroy()方法。 
       在卸載一個(gè)Servlet之前,Servlet引擎必須等待所有的service()方法完成或超時(shí)結束(Servlet引擎會(huì )對超時(shí)作出定義)。當一個(gè) Servlet被卸載時(shí),引擎將不能給Servlet發(fā)送任何請求。引擎必須釋放Servlet并完成無(wú)用存儲單元的收集

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

      映射一個(gè)Servlet到一個(gè)URL
      例如,你可以指定一個(gè)特殊的Servlet它僅被來(lái)自/feedback/index.html的請求調用。

      映射一個(gè)Servlet到以一個(gè)指定的目錄名開(kāi)始的所有URL
       例如,你可以映射一個(gè)Servlet到/catalog,這樣來(lái)自/catalog/、 /catalog/garden和 /catalog/housewares/index.html的請求都會(huì )被映射到這個(gè)Servlet。但是來(lái)自/catalogtwo 或 /catalog.html的請求沒(méi)被映射。

      映射一個(gè)Servlet到所有以一個(gè)特定的字段結尾的所有URL
      例如,你可以映射一個(gè)來(lái)自于所有以in.thtml結尾的請求到一個(gè)特定的Servlet。

      映射一個(gè)Servlet到一個(gè)特殊的URL /servlet/servlet_name。
      例如,如果你建立了一個(gè)名叫listattributes的Servlet,你可以通過(guò)使用/servlet/listattributes來(lái)訪(fǎng)問(wèn)這個(gè)Servlet。

      通過(guò)類(lèi)名調用Servlet
       例如,如果Servlet引擎接收了來(lái)自/servlet/com.foo.servlet.MailServlet的請求,Servlet引擎會(huì )載入這 個(gè)com.foo.servlet.MailServlet類(lèi),建立實(shí)例,并通過(guò)這個(gè)Servlet來(lái)處理請求。

      Servlet環(huán)境
      ServletContext 接口定義了一個(gè)Servlet環(huán)境對象,這個(gè)對象定義了一個(gè)在Servlet引擎上的Servlet的視圖。通過(guò)使用這個(gè)對象,Servlet可以記錄事 件、得到資源并得到來(lái)自Servlet引擎的類(lèi)(例如RequestDispatcher對象)。一個(gè)Servlet只能運行在一個(gè)Servlet環(huán)境 中,但是不同的Servlet可以在Servlet引擎上有不同的視圖。
      如果Servlet引擎支持虛擬主機,每個(gè)虛擬主機有一個(gè)Servlet環(huán)境。一個(gè)Servlet環(huán)境不能在虛擬主機之間共享。
      Servlet引擎能夠允許一個(gè)Servlet環(huán)境有它自己的活動(dòng)范圍。
      例如,一個(gè)Servlet環(huán)境是屬于bank應用的,它將被映射到/bank目錄下。在這種情況下,一個(gè)對getContext方法的調用會(huì )返回/bank的Servlet環(huán)境。

      HTTP會(huì )話(huà)
      HTTP是一個(gè)沒(méi)有狀態(tài)的協(xié)議。要建立一個(gè)有效的Web服務(wù)應用,你必須能夠識別一個(gè)連續的來(lái)自遠端的客戶(hù)機的唯一的請求。隨著(zhù)時(shí)間的過(guò)去,發(fā)展了許多會(huì )話(huà)跟蹤的技術(shù),但是使用起來(lái)都比較麻煩。
      Java Servlet API提供了一個(gè)簡(jiǎn)單的接口,通過(guò)這個(gè)接口,Servlet引擎可以有效地跟蹤用戶(hù)的會(huì )話(huà)。

      建立Session
      因為HTTP是一個(gè)請求-響應協(xié)議,一個(gè)會(huì )話(huà)在客戶(hù)機加入之前會(huì )被認為是一個(gè)新的會(huì )話(huà)。加入的意思是返回會(huì )話(huà)跟蹤信息到服務(wù)器中,指出會(huì )話(huà)已被建立。在客戶(hù)端加入之前,我們不能判斷下一個(gè)客戶(hù)端請求是目前會(huì )話(huà)的一部分。
      在下面的情況下,Session會(huì )被認為是新的Session。
      客戶(hù)端的Session在此之前還不知道
      客戶(hù)端選擇不加入Session,例如,如果客戶(hù)端拒絕接收來(lái)自服務(wù)器的cookie
作 為一個(gè)Servlet的開(kāi)發(fā)者,你必須決定你的Web應用是否處理客戶(hù)機不加入或不能加入Session。服務(wù)器會(huì )在Web服務(wù)器或Servlet規定的 時(shí)間內維持一個(gè)Session對象。當Session終止時(shí),服務(wù)器會(huì )釋放Session對象以及所有綁定在Session上的對象。
綁定對象到Session中
       如果有助于你處理應用的數據需求,你也許需要綁定對象到Session中,你可以通過(guò)一個(gè)唯一的名字綁定任何的對象到Session中,這時(shí),你需要使用 HttpSession對象。任何綁定到Session上的對象都可以被處理同一會(huì )話(huà)的Servlet調用。
      有些對象可能需要你知道 什么時(shí)候會(huì )被放置到Session中或從Session中移開(kāi)。你可以通過(guò)使用HttpSessionBindingListener接口獲得這些信息。 當你的應用存儲數據到Session中,或從Session中清除數據,Servlet都會(huì )通過(guò)HttpSessionBindingListener檢 杳什么類(lèi)被綁定或被取消綁定。這個(gè)接口的方法會(huì )通報被綁定或被取消綁定的對象。
API對象的說(shuō)明
      這一部分包含了對Java Servlet API的全部類(lèi)和接口的詳細說(shuō)明。這個(gè)說(shuō)明與Javadoc API差不多,但是這份文檔提供了更多的信息。
API包含了兩個(gè)軟件包,十二個(gè)接口和九個(gè)類(lèi)。
軟件包:javax.servlet 
所包含的接口:RequestDispatcher;Servlet;ServletConfig;ServletContext;ServletRequest;ServletResponse;SingleThreadModel。
所包含的類(lèi):GenericServlet;ServletInputStream;ServletOutputStream;ServletException;UnavailableException。

      一、RequestDispatcher接口:
      定義:
      public interface RequestDispatcher;
      定義一個(gè)對象,從客戶(hù)端接收請求,然后將它發(fā)給服務(wù)器的可用資源(例如Servlet、CGI、HTML文件、JSP文件)。Servlet引擎創(chuàng )建request dispatcher對象,用于封裝由一個(gè)特定的URL定義的服務(wù)器資源。
      這個(gè)接口是專(zhuān)用于封裝Servlet的,但是一個(gè)Servlet引擎可以創(chuàng )建request dispatcher對象用于封裝任何類(lèi)型的資源。
      request dispatcher對象是由Servlet引擎建立的,而不是由Servlet開(kāi)發(fā)者建立的。
      方法
      1、forward
      public void forward(ServletRequest request, ServletReponse response)
            throws ServletException, IOException;
      被用來(lái)從這個(gè)Servlet向其它服務(wù)器資源傳遞請求。當一個(gè)Servlet對響應作了初步的處理,并要求其它的對象對此作出響應時(shí),可以使用這個(gè)方法。
      當request對象被傳遞到目標對象時(shí),請求的URL路徑和其他路徑參數會(huì )被調整為反映目標對象的目標URL路徑。
      如果已經(jīng)通過(guò)響應返回了一個(gè)ServletOutputStream對象或PrintWriter對象,這個(gè)方法將不能使用,否則,這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      2、include
      public void include(ServletRequest request, ServletResponse response)
            throws ServletException, IOException
      用來(lái)包括發(fā)送給其他服務(wù)器資源的響應的內容。本質(zhì)上來(lái)說(shuō),這個(gè)方法反映了服務(wù)器端的內容。
      請求對象傳到目標對象后會(huì )反映調用請求的請求URL路徑和路徑信息。這個(gè)響應對象只能調用這個(gè)Servlet的ServletOutputStream對象和PrintWriter對象。
       一個(gè)調用include的Servlet不能設置頭域,如果這個(gè)Servlet調用了必須設置頭域的方法(例如cookie),這個(gè)方法將不能保證正常使 用。作為一個(gè)Servlet開(kāi)發(fā)者,你必須妥善地解決那些可能直接存儲頭域的方法。例如,即使你使用會(huì )話(huà)跟蹤,為了保證session的正常工作,你必須 在一個(gè)調用include的Servlet之外開(kāi)始你的session

      二、Servlet接口。
      定義
      public interface Servlet
      這個(gè)接口定義了一個(gè)Servlet:一個(gè)在Web服務(wù)器上繼承了這個(gè)功能的Java類(lèi)。
      方法
      1、init
      public void init(ServletConfig config) throws ServletException;
      Servlet引擎會(huì )在Servlet實(shí)例化之后,置入服務(wù)之前精確地調用init方法。在調用service方法之前,init方法必須成功退出。
      如果init方法拋出一個(gè)ServletException,你不能將這個(gè)Servlet置入服務(wù)中,如果init方法在超時(shí)范圍內沒(méi)完成,我們也可以假定這個(gè)Servlet是不具備功能的,也不能置入服務(wù)中。
      2、service
      public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException;
      Servlet引擎調用這個(gè)方法以允許Servlet響應請求。這個(gè)方法在Servlet未成功初始化之前無(wú)法調用。在Servlet被初始化之前,Servlet引擎能夠封鎖未決的請求。
      在一個(gè)Servlet對象被卸載后,直到一個(gè)新的Servelt被初始化,Servlet引擎不能調用這個(gè)方法
      3、destroy
      public void destroy();
      當一個(gè)Servlet被從服務(wù)中去除時(shí),Servlet引擎調用這個(gè)方法。在這個(gè)對象的service方法所有線(xiàn)程未全部退出或者沒(méi)被引擎認為發(fā)生超時(shí)操作時(shí),destroy方法不能被調用。
      4、getServletConfig
      public ServletConfig getServletConfig();
      返回一個(gè)ServletConfig對象,作為一個(gè)Servlet的開(kāi)發(fā)者,你應該通過(guò)init方法存儲ServletConfig對象以便這個(gè)方法能返回這個(gè)對象。為了你的便利,GenericServlet在執行這個(gè)接口時(shí),已經(jīng)這樣做了。
      5、getServletInfo
      public String getServletInfo();
      允許Servlet向主機的Servlet運行者提供有關(guān)它本身的信息。返回的字符串應該是純文本格式而不應有任何標志(例如HTML,XML等)。

      三、ServletConfig接口
      定義
      public interface ServletConfig
      這個(gè)接口定義了一個(gè)對象,通過(guò)這個(gè)對象,Servlet引擎配置一個(gè)Servlet并且允許Servlet獲得一個(gè)有關(guān)它的ServletContext接口的說(shuō)明。每一個(gè)ServletConfig對象對應著(zhù)一個(gè)唯一的Servlet。
      方法
      1、getInitParameter
      public String getInitParameter(String name);
      這個(gè)方法返回一個(gè)包含Servlet指定的初始化參數的String。如果這個(gè)參數不存在,返加空值。
      2、getInitParameterNames
      public Enumeration getInitParameterNames();
      這個(gè)方法返回一個(gè)列表String對象,該對象包括Servlet的所有初始化參數名。如果Servlet沒(méi)有初始化參數,getInitParameterNames返回一個(gè)空的列表。
      3、getServletContext
      public ServletContext getServletContext();
      返回這個(gè)Servlet的ServletContext對象。

      四、ServletContext接口
      定義
      public interface ServletContext
      定義了一個(gè)Servlet的環(huán)境對象,通過(guò)這個(gè)對象,Servlet引擎向Servlet提供環(huán)境信息。
       一個(gè)Servlet的環(huán)境對象必須至少與它所駐留的主機是一一對應的。在一個(gè)處理多個(gè)虛擬主機的Servlet引擎中(例如,使用了HTTP1.1的主機 頭域),每一個(gè)虛擬主機必須被視為一個(gè)單獨的環(huán)境。此外,Servlet引擎還可以創(chuàng )建對應于一組Servlet的環(huán)境對象。
      方法 
      1、getAttribute
      public Object getAttribute(String name); 
      返回Servlet環(huán)境對象中指定的屬性對象。如果該屬性對象不存在,返回空值。這個(gè)方法允許訪(fǎng)問(wèn)有關(guān)這個(gè)Servlet引擎的在該接口的其他方法中尚未提供的附加信息。
      2、getAttributeNames
      public Enumeration getAttributeNames();
      返回一個(gè)Servlet環(huán)境對象中可用的屬性名的列表。
      3、getContext
      public ServletContext getContext(String uripath);
      返回一個(gè)Servlet環(huán)境對象,這個(gè)對象包括了特定URI路徑的Servlets和資源,如果該路徑不存在,則返回一個(gè)空值。URI路徑格式是/dir/dir/filename.ext。
      為了安全,如果通過(guò)這個(gè)方法訪(fǎng)問(wèn)一個(gè)受限制的Servlet的環(huán)境對象,會(huì )返回一個(gè)空值。
      4、getMajorVersion
      public int getMajorVersion();
      返回Servlet引擎支持的Servlet API的主版本號。例如對于2.1版,這個(gè)方法會(huì )返回一個(gè)整數2。
      5、getMinorVersion
      public int getMinorVersion();
      返回Servlet引擎支持的Servlet API的次版本號。例如對于2.1版,這個(gè)方法會(huì )返回一個(gè)整數2。
      6、getMimeType
      public String getMimeType(String file);
      返回指定文件的MIME類(lèi)型,如果這種MIME類(lèi)型未知,則返回一個(gè)空值。MIME類(lèi)型是由Servlet引擎的配置決定的。
      7、getRealPath
      public String getRealPath(String path);
       一個(gè)符合URL路徑格式的指定的虛擬路徑的格式是:/dir/dir/filename.ext。用這個(gè)方法,可以返回與一個(gè)符合該格式的虛擬路徑相對應 的真實(shí)路徑的String。這個(gè)真實(shí)路徑的格式應該適合于運行這個(gè)Servlet引擎的計算機(包括其相應的路徑解析器)。
      不管是什么原因,如果這一從虛擬路徑轉換成實(shí)際路徑的過(guò)程不能執行,該方法將會(huì )返回一個(gè)空值。
      8、getResource
      public URL getResource(String uripath);
       返回一個(gè)URL對象,該對象反映位于給定的URL地址(格式:/dir/dir/filename.ext)的Servlet環(huán)境對象已知的資源。無(wú)論 URLStreamHandlers對于訪(fǎng)問(wèn)給定的環(huán)境是不是必須的,Servlet引擎都必須執行。如果給定的路徑的Servlet環(huán)境沒(méi)有已知的資 源,該方法會(huì )返回一個(gè)空值。
      這個(gè)方法和java.lang.Class的getResource方法不完全相同。 java.lang.Class的getResource方法通過(guò)裝載類(lèi)來(lái)尋找資源。而這個(gè)方法允許服務(wù)器產(chǎn)生環(huán)境變量給任何資源的任何Servlet, 而不必依賴(lài)于裝載類(lèi)、特定區域等等。
      9、getResourceAsStream
      public InputStream getResourceAsStream(String uripath);
      返回一個(gè)InputStream對象,該對象引用指定的URL的Servlet環(huán)境對象的內容。如果沒(méi)找到Servlet環(huán)境變量,就會(huì )返回空值,URL路徑應該具有這種格式:/dir/dir/filename.ext。
      這個(gè)方法是一個(gè)通過(guò)getResource方法獲得URL對象的方便的途徑。請注意,當你使用這個(gè)方法時(shí),meta-information(例如內容長(cháng)度、內容類(lèi)型)會(huì )丟失。
      10、getRequestDispatcher
      public RequestDispatcher getRequestDispatcher(String uripath);
       如果這個(gè)指定的路徑下能夠找到活動(dòng)的資源(例如一個(gè)Servlet,JSP頁(yè)面,CGI等等)就返回一個(gè)特定URL的RequestDispatcher 對象,否則,就返回一個(gè)空值,Servlet引擎負責用一個(gè)request dispatcher對象封裝目標路徑。這個(gè) request dispatcher對象可以用來(lái)完全請求的傳送。
      11、getServerInfo
      public String getServerInfo();
      返回一個(gè)String對象,該對象至少包括Servlet引擎的名字和版本號。
      12、log
      public void log(String msg);
      public void log(String msg, Throwable t);
      public void log(Exception exception, String msg); // 這種用法將被取消
      寫(xiě)指定的信息到一個(gè)Servlet環(huán)境對象的log文件中。被寫(xiě)入的log文件由Servlet引擎指定,但是通常這是一個(gè)事件log。當這個(gè)方法被一個(gè)異常調用時(shí),log中將包括堆棧跟蹤。
      13、setAttribute
      public void setAttribute(String name, Object o);
      給予Servlet環(huán)境對象中你所指定的對象一個(gè)名稱(chēng)。
      14、removeAttribute
      public void removeAttribute(String name);
      從指定的Servlet環(huán)境對象中刪除一個(gè)屬性。
      注:以下幾個(gè)方法將被取消
      15、getServlet
      public Servlet getServlet(String name) throws ServletException;
       最初用來(lái)返回一個(gè)指定名稱(chēng)的Servlet,如果沒(méi)找到就返回一個(gè)空值。如果這個(gè)Servlet能夠返回,這就意味著(zhù)它已經(jīng)被初始化,而且已經(jīng)可以接受 service請求。這是一個(gè)危險的方法。當調用這個(gè)方法時(shí),可能并不知道Servlet的狀態(tài),這就可能導致有關(guān)服務(wù)器狀態(tài)的問(wèn)題。而允許一個(gè) Servlet訪(fǎng)問(wèn)其他Servlet的這個(gè)方法也同樣的危險。
      現在這個(gè)方法返回一個(gè)空值,為了保持和以前版本的兼容性,現在這個(gè)方法還沒(méi)有被取消。在以后的API版本中,該方法將被取消。
      16、getServletNames
      public Enumeration getServletNames();
      最初用來(lái)返回一個(gè)String對象的列表,該列表表示了在這個(gè)Servlet環(huán)境下所有已知的Servlet對象名。這個(gè)列表總是包含這個(gè)Servlet自身。
基于與上一個(gè)方法同樣的理由,這也是一個(gè)危險的方法。
      現在這個(gè)方法返回一個(gè)空的列表。為了保持和以前版本的兼容性,現在這個(gè)方法還沒(méi)有被取消。在以后的API版本中,該方法將被取消。
      17、getServlets
      public Enumeration getServlets();
      最初用來(lái)返回在這個(gè)Servelet環(huán)境下所有已知的Servlet對象的列表。這個(gè)列表總是包含這個(gè)Servlet自身。
基于與getServlet方法同樣的理由,這也是一個(gè)危險的方法。
      現在這個(gè)方法返回一個(gè)空的列表。為了保持和以前版本的兼容性,現在這個(gè)方法還沒(méi)有被取消。在以后的API版本中,該方法將被取消。

      五、ServletRequest接口
      定義
      public interface ServletRequest
      定義一個(gè)Servlet引擎產(chǎn)生的對象,通過(guò)這個(gè)對象,Servlet可以獲得客戶(hù)端請求的數據。這個(gè)對象通過(guò)讀取請求體的數據提供包括參數的名稱(chēng)、值和屬性以及輸入流的所有數據。
      方法
      1、getAttribute
      public Object getAttribute(String name);
      返回請求中指定屬性的值,如果這個(gè)屬性不存在,就返回一個(gè)空值。這個(gè)方法允許訪(fǎng)問(wèn)一些不提供給這個(gè)接口中其他方法的請求信息以及其他Servlet放置在這個(gè)請求對象內的數據。
      2、getAttributeNames
      public Enumeration getAttributeNames();
      返回包含在這個(gè)請求中的所有屬性名的列表。
      3、getCharacterEncoding
      public String getCharacterEncoding();
      返回請求中輸入內容的字符編碼類(lèi)型,如果沒(méi)有定義字符編碼類(lèi)型就返回空值。
      4、getContentLength
      public int getContentLength();
      請求內容的長(cháng)度,如果長(cháng)度未知就返回-1。
      5、getContentType
      public String getContentType();
      返回請求數據體的MIME類(lèi)型,如果類(lèi)型未知返回空值。
      6、getInputStream
      public ServletInputStream getInputStream() throws IOException;
      返回一個(gè)輸入流用來(lái)從請求體讀取二進(jìn)制數據。如果在此之前已經(jīng)通過(guò)getReader方法獲得了要讀取的結果,這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      7、getParameter
      public String getParameter(String name);
       以一個(gè)String返回指定的參數的值,如果這個(gè)參數不存在返回空值。例如,在一個(gè)HTTP Servlet中,這個(gè)方法會(huì )返回一個(gè)指定的查詢(xún)語(yǔ)句產(chǎn)生的 參數的值或一個(gè)被提交的表單中的參數值。如果一個(gè)參數名對應著(zhù)幾個(gè)參數值,這個(gè)方法只能返回通過(guò)getParameterValues方法返回的數組中的 第一個(gè)值。因此,如果這個(gè)參數有(或者可能有)多個(gè)值,你只能使用getParameterValues方法。
      8、getParameterNames
      public Enumeration getParameterNames();
      返回所有參數名的String對象列表,如果沒(méi)有輸入參數,該方法返回一個(gè)空值。
      9、getParameterValues
      public String[] getParameterValues(String name);
      通過(guò)一個(gè)String對象的數組返回指定參數的值,如果這個(gè)參數不存在,該方法返回一個(gè)空值。
      10、getProtocol
      public String getProtocol();
      返回這個(gè)請求所用的協(xié)議,其形式是協(xié)議/主版本號.次版本號。例如對于一個(gè)HTTP1.0的請求,該方法返回HTTP/1.0。
      11、getReader
      public BufferedReader getReader() throws IOException;
      這個(gè)方法返回一個(gè)buffered reader用來(lái)讀取請求體的實(shí)體,其編碼方式依照請求數據的編碼方式。如果這個(gè)請求的輸入流已經(jīng)被getInputStream調用獲得,這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      12、getRemoteAddr
      public String getRemoteAddr();
      返回發(fā)送請求者的IP地址。
      13、getRemoteHost
      public String getRemoteHost();
      返回發(fā)送請求者的主機名稱(chēng)。如果引擎不能或者選擇不解析主機名(為了改善性能),這個(gè)方法會(huì )直接返回IP地址。
      14、getScheme
      public String getScheme();
      返回請求所使用的URL的模式。例如,對于一個(gè)HTTP請求,這個(gè)模式就是http。
      15、getServerName
      public String getServerName();
      返回接收請求的服務(wù)器的主機名。
      16、getServerPort
      public int getServerPort();
      返回接收請求的端口號。
      17、setAttribute
      public void setAttribute(String name, Object object);
      這個(gè)方法在請求中添加一個(gè)屬性,這個(gè)屬性可以被其他可以訪(fǎng)問(wèn)這個(gè)請求對象的對象(例如一個(gè)嵌套的Servlet)使用。
      注:以下方法將被取消
      getRealPath
      public String getRealPath(String path);
      返回與虛擬路徑相對應的真實(shí)路徑,如果因為某種原因,這一過(guò)程不能進(jìn)行,該方法將返回一個(gè)空值。
       這個(gè)方法和ServletContext接口中的getRealPath方法重復。在2.1版中,ServletContext接口將闡明一個(gè) Servlet所能用的所有的路徑的映射。該方法執行的結果將會(huì )與ServletContext中g(shù)etRealPath方法的結果完全一樣。

      六、ServletResponse接口
      定義
      public interface ServletResponse
      定義一個(gè)Servlet引擎產(chǎn)生的對象,通過(guò)這個(gè)對象,Servlet對客戶(hù)端的請求作出響應。這個(gè)響應應該是一個(gè)MIME實(shí)體,可能是一個(gè)HTML頁(yè)、圖象數據或其他MIME的格式。
      方法
      1、getCharacterEncoding
      public String getCharacterEncoding();
      返回MIME實(shí)體的字符編碼。這個(gè)字符編碼可以是指定的類(lèi)型,也可以是與請求頭域所反映的客戶(hù)端所能接受的字符編碼最匹配的類(lèi)型。在HTTP協(xié)議中,這個(gè)信息被通過(guò)Accept-Charset傳送到Servlet引擎。
      有關(guān)字符編碼和MIME的更多信息請參看RFC 2047。
      2、getOutputStream
      public ServletOutputStream getOutputStream() throws IOException;
      返回一個(gè)記錄二進(jìn)制的響應數據的輸出流。
      如果這個(gè)響應對象已經(jīng)調用getWriter,將會(huì )拋出IllegalStateException。
      3、getWriter
      public PrintWriter getWriter throws IOException;
      這個(gè)方法返回一個(gè)PringWriter對象用來(lái)記錄格式化的響應實(shí)體。如果要反映使用的字符編碼,必須修改響應的MIME類(lèi)型。在調用這個(gè)方法之前,必須設定響應的content類(lèi)型。
      如果沒(méi)有提供這樣的編碼類(lèi)型,會(huì )拋出一個(gè)UnsupportedEncodingException,如果這個(gè)響應對象已調用getOutputStream,會(huì )拋出一個(gè)getOutputStream。
      4、setContentLength
      public void setContentLength(int length);
      設置響應的內容的長(cháng)度,這個(gè)方法會(huì )覆蓋以前對內容長(cháng)度的設定。
      為了保證成功地設定響應頭的內容長(cháng)度,在響應被提交到輸出流之前必須調用這個(gè)方法。
      5、setContentType
      public void setContentType(String type);
      這個(gè)方法用來(lái)設定響應的content類(lèi)型。這個(gè)類(lèi)型以后可能會(huì )在另外的一些情況下被隱式地修改,這里所說(shuō)的另外的情況可能當服務(wù)器發(fā)現有必要的情況下對MIME的字符設置。
      為了保證成功地設定響應頭的content類(lèi)型,在響應被提交到輸出流之前必須調用這個(gè)方法。

      七、SingleThreadModel接口
      定義
      public interface SingleThreadModel;
      這是一個(gè)空接口,它指定了系統如何處理對同一個(gè)Servlet的調用。如果一個(gè)Servlet被這個(gè)接口指定,那么在這個(gè)Servlet中的service方法中將不會(huì )有兩個(gè)線(xiàn)程被同時(shí)執行。
      Servlet可以通過(guò)維持一個(gè)各自獨立的Servlet實(shí)例池,或者通過(guò)只讓Servlet的service中只有一個(gè)線(xiàn)程的方法來(lái)實(shí)現這個(gè)保證。

      八、GenericServlet類(lèi)
      public abstract class GenericServlet implements Servlet,
            ServletConfig, Serializable;
      這個(gè)類(lèi)的存在使得編寫(xiě)Servlet更加方便。它提供了一個(gè)簡(jiǎn)單的方案,這個(gè)方案用來(lái)執行有關(guān)Servlet生命周期的方法以及在初始化時(shí)對ServletConfig對象和ServletContext對象進(jìn)行說(shuō)明。
      方法
      1、destroy
      public void destroy();
      在這里destroy方法不做任何其他的工作。
      2、getInitParameter
      public String getInitParameter(String name);
      這是一個(gè)簡(jiǎn)便的途徑,它將會(huì )調用ServletConfig對象的同名的方法。
      3、getInitParameterNames
      public Enumeration getInitParameterNames();
      這是一個(gè)簡(jiǎn)便的途徑,它將會(huì )調用ServletConfig對象的同名的方法。
      4、getServletConfig
      public ServletConfig getServletConfig();
      返回一個(gè)通過(guò)這個(gè)類(lèi)的init方法產(chǎn)生的ServletConfig對象的說(shuō)明。
      5、getServletContext
      public ServletContext getServletContext();
      這是一個(gè)簡(jiǎn)便的途徑,它將會(huì )調用ServletConfig對象的同名的方法。
      6、getServletInfo
      public String getServletInfo();
      返回一個(gè)反映Servlet版本的String。
      7、init
      public void init() throws ServletException;
      public void init(ServletConfig config) throws ServletException;
      init(ServletConfig config)方法是一個(gè)對這個(gè)Servlet的生命周期進(jìn)行初始化的簡(jiǎn)便的途徑。
      init()方法是用來(lái)讓你對GenericServlet類(lèi)進(jìn)行擴充的,使用這個(gè)方法時(shí),你不需要存儲config對象,也不需要調用super.init(config)。
      init(ServletConfig config)方法會(huì )存儲config對象然后調用init()。如果你重載了這個(gè)方法,你必須調用super.init(config),這樣GenericServlet類(lèi)的其他方法才能正常工作。
      8、log
      public void log(String msg);
      public void log(String msg, Throwable cause);
      通過(guò)Servlet content對象將Servlet的類(lèi)名和給定的信息寫(xiě)入log文件中。
      9、service
      public abstract void service(ServletRequest request, ServletResponse
            response) throws ServletException, IOException;
      這是一個(gè)抽象的方法,當你擴展這個(gè)類(lèi)時(shí),為了執行網(wǎng)絡(luò )請求,你必須執行它。

      九、ServletInputStream類(lèi)
      定義
      public abstract class ServletInputStream extends InputStream
      這個(gè)類(lèi)定義了一個(gè)用來(lái)讀取客戶(hù)端的請求信息的輸入流。這是一個(gè)Servlet引擎提供的抽象類(lèi)。一個(gè)Servlet通過(guò)使用ServletRequest接口獲得了對一個(gè)ServletInputStream對象的說(shuō)明。
      這個(gè)類(lèi)的子類(lèi)必須提供一個(gè)從InputStream接口讀取有關(guān)信息的方法。
      方法
      1、readLine
      public int readLine(byte[] b, int off, int len) throws IOException;
      從輸入流的指定的偏移量開(kāi)始將指定長(cháng)度的字節讀入到指定的數組中。如果該行所有請求的內容都已被讀取,這個(gè)讀取的過(guò)程將結束。如果是遇到了新的一行,新的一行的首個(gè)字符也將被讀入到數組中。

      十、ServletOutputStream類(lèi)
      定義
      public abstract class ServletOutputStream extends OutputStream
      這是一個(gè)由Servlet引擎使用的抽象類(lèi)。Servlet通過(guò)使用ServletResponse接口的使用獲得了對一個(gè)這種類(lèi)型的對象的說(shuō)明。利用這個(gè)輸出流可以將數據返回到客戶(hù)端。
      這個(gè)類(lèi)的子類(lèi)必須提供一個(gè)向OutputStream接口寫(xiě)入有關(guān)信息的方法。
      在這個(gè)接口中,當一個(gè)刷新或關(guān)閉的方法被調用時(shí)。所有數據緩沖區的信息將會(huì )被發(fā)送到客戶(hù)端,也就是說(shuō)響應被提交了。請注意,關(guān)閉這種類(lèi)型的對象時(shí)不一定要關(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;
      輸出變量到輸出流中,并增加一個(gè)回車(chē)換行符

      十一、ServletException類(lèi)
      定義
      public class ServletException extends Exception
      當Servlet遇到問(wèn)題時(shí)拋出的一個(gè)異常。
      構造函數
      public ServletException();
      public ServletException(String message);
      public ServletException(String message, Throwable cause);
      public ServletException(Throwable cause);
      構造一個(gè)新的ServletException,如果這個(gè)構造函數包括一個(gè)Throwable參數,這個(gè)Throwable對象將被作為可能拋出這個(gè)異常的原因。
      方法
      1、getRootCause
      public Throwable getRootCause();
      如果配置了拋出這個(gè)異常的原因,這個(gè)方法將返回這個(gè)原因,否則返回一個(gè)空值。

      十二、UnavailableException類(lèi)
      定義
      public class UnavailableException extends ServletException
      不論一個(gè)Servlet是永久地還是臨時(shí)地無(wú)效,都會(huì )拋出這個(gè)異常。Servlet會(huì )記錄這個(gè)異常以及Servlet引擎所要采取的相應措施。
      臨時(shí)的無(wú)效是指Servlet在某一時(shí)間由于一個(gè)臨時(shí)的問(wèn)題而不能處理請求。例如,在另一個(gè)不同的應用層的服務(wù)(可能是數據庫)無(wú)法使用。這個(gè)問(wèn)題可能會(huì )自行糾正或者需要采取其他的糾正措施。
      永久的無(wú)效是指除非管理員采取措施,這個(gè)Servlet將不能處理客戶(hù)端的請求。例如,這個(gè)Servlet配置信息丟失或Servlet的狀態(tài)被破壞。
      Servlet 引擎可以安全地處理包括永久無(wú)效在內的這兩種異常,但是對臨時(shí)無(wú)效的正常處理可以使得Servlet引擎更健壯。特別的,這時(shí)對Servlet的請求只是 被阻止(或者是被延期)一段時(shí)間,這顯然要比在service自己重新啟動(dòng)前完全拒絕請求更為科學(xué)。
      構造函數
      public UnavailableException(Servlet servlet, String message);
      public UnavailableException(int seconds, Servlet servlet, 
            String message);
      構造一個(gè)包含指定的描述信息的新的異常。如果這個(gè)構造函數有一個(gè)關(guān)于秒數的參數,這將給出Servlet發(fā)生臨時(shí)無(wú)效后,能夠重新處理請求的估計時(shí)間。如果不包含這個(gè)參數,這意味著(zhù)這個(gè)Servlet永久無(wú)效。
      方法
      1、getServlet
      public Servlet getServlet();
      返回報告無(wú)效的Servlet。這被Servlet引擎用來(lái)識別受到影響的Servlet。
      2、getUnavailableSeconds
      public int getUnavailableSeconds();
      返回Servlet預期的無(wú)效時(shí)間,如果這個(gè)Servlet是永久無(wú)效,返回-1。
      3、isPermanent
      public boolean isPermanent();
      如果這個(gè)Servlet永久無(wú)效,返回布爾值true,指示必須采取一些管理行動(dòng)以使得這個(gè)Servlet可用。

軟件包:javax.servlet.http 
      所包含的接口:HttpServletRequest;HttpServletResponse;HttpSession;HttpSessionBindingListener;HttpSessionContext。
      所包含的類(lèi):Cookie;HttpServlet;HttpSessionBindingEvent;HttpUtils。

      一、HttpServletRequest接口
      定義\
      public interface HttpServletRequest extends ServletRequest;
      用來(lái)處理一個(gè)對Servlet的HTTP格式的請求信息。
      方法
      1、getAuthType
      public String getAuthType();
      返回這個(gè)請求的身份驗證模式。
      2、getCookies
      public Cookie[] getCookies();
      返回一個(gè)數組,該數組包含這個(gè)請求中當前的所有cookie。如果這個(gè)請求中沒(méi)有cookie,返回一個(gè)空數組。
      3、getDateHeader
      public long getDateHeader(String name);
      返回指定的請求頭域的值,這個(gè)值被轉換成一個(gè)反映自1970-1-1日(GMT)以來(lái)的精確到毫秒的長(cháng)整數。
      如果頭域不能轉換,拋出一個(gè)IllegalArgumentException。如果這個(gè)請求頭域不存在,這個(gè)方法返回-1。
      4、getHeader
      public String getHeader(String name);
      返回一個(gè)請求頭域的值。(譯者注:與上一個(gè)方法不同的是,該方法返回一個(gè)字符串)
      如果這個(gè)請求頭域不存在,這個(gè)方法返回-1。
      5、getHeaderNames
      public Enumeration getHeaderNames();
      該方法返回一個(gè)String對象的列表,該列表反映請求的所有頭域名。
      有的引擎可能不允許通過(guò)這種方法訪(fǎng)問(wèn)頭域,在這種情況下,這個(gè)方法返回一個(gè)空的列表。
      6、getIntHeader
      public int getIntHeader(String name);
      返回指定的請求頭域的值,這個(gè)值被轉換成一個(gè)整數。
      如果頭域不能轉換,拋出一個(gè)IllegalArgumentException。如果這個(gè)請求頭域不存在,這個(gè)方法返回-1。
      7、getMethod
      public String getMethod();
      返回這個(gè)請求使用的HTTP方法(例如:GET、POST、PUT)
      8、getPathInfo
      public String getPathInfo();
       這個(gè)方法返回在這個(gè)請求的URL的Servlet路徑之后的請求URL的額外的路徑信息。如果這個(gè)請求URL包括一個(gè)查詢(xún)字符串,在返回值內將不包括這個(gè) 查詢(xún)字符串。這個(gè)路徑在返回之前必須經(jīng)過(guò)URL解碼。如果在這個(gè)請求的URL的Servlet路徑之后沒(méi)有路徑信息。這個(gè)方法返回空值。
      9、getPathTranslated
      public String getPathTranslated();
      這個(gè)方法獲得這個(gè)請求的URL的Servlet路徑之后的額外的路徑信息,并將它轉換成一個(gè)真實(shí)的路徑。在進(jìn)行轉換前,這個(gè)請求的URL必須經(jīng)過(guò)URL解碼。如果在這個(gè)URL的Servlet路徑之后沒(méi)有附加路徑信息。這個(gè)方法返回空值。
      10、getQueryString
      public String getQueryString();
      返回這個(gè)請求URL所包含的查詢(xún)字符串。一個(gè)查詢(xún)字串符在一個(gè)URL中由一個(gè)“?”引出。如果沒(méi)有查詢(xún)字符串,這個(gè)方法返回空值。
      11、getRemoteUser
      public String getRemoteUser
      返回作了請求的用戶(hù)名,這個(gè)信息用來(lái)作HTTP用戶(hù)論證。
      如果在請求中沒(méi)有用戶(hù)名信息,這個(gè)方法返回空值。
      12、getRequestedSessionId
      public String getRequestedSessionId();
      返回這個(gè)請求相應的session id。如果由于某種原因客戶(hù)端提供的session id是無(wú)效的,這個(gè)session id將與在當前session中的session id不同,與此同時(shí),將建立一個(gè)新的session。
      如果這個(gè)請求沒(méi)與一個(gè)session關(guān)聯(lián),這個(gè)方法返回空值。
      13、getRequestURI
      public String getRequestURI();
       從HTTP請求的第一行返回請求的URL中定義被請求的資源的部分。如果有一個(gè)查詢(xún)字符串存在,這個(gè)查詢(xún)字符串將不包括在返回值當中。例如,一個(gè)請求通過(guò) /catalog/books?id=1這樣的URL路徑訪(fǎng)問(wèn),這個(gè)方法將返回/catalog/books。這個(gè)方法的返回值包括了Servlet路徑 和路徑信息。
      如果這個(gè)URL路徑中的的一部分經(jīng)過(guò)了URL編碼,這個(gè)方法的返回值在返回之前必須經(jīng)過(guò)解碼。
      14、getServletPath
      public String getServletPath();
       這個(gè)方法返回請求URL反映調用Servlet的部分。例如,一個(gè)Servlet被映射到/catalog/summer這個(gè)URL路徑,而一個(gè)請求使用 了/catalog/summer/casual這樣的路徑。所謂的反映調用Servlet的部分就是指/catalog/summer。
      如果這個(gè)Servlet不是通過(guò)路徑匹配來(lái)調用。這個(gè)方法將返回一個(gè)空值。
      15、getSession
      public HttpSession getSession();
      public HttpSession getSession(boolean create);
      返回與這個(gè)請求關(guān)聯(lián)的當前的有效的session。如果調用這個(gè)方法時(shí)沒(méi)帶參數,那么在沒(méi)有session與這個(gè)請求關(guān)聯(lián)的情況下,將會(huì )新建一個(gè)session。如果調用這個(gè)方法時(shí)帶入了一個(gè)布爾型的參數,只有當這個(gè)參數為真時(shí),session才會(huì )被建立。
      為了確保session能夠被完全維持。Servlet開(kāi)發(fā)者必須在響應被提交之前調用該方法。
      如果帶入的參數為假,而且沒(méi)有session與這個(gè)請求關(guān)聯(lián)。這個(gè)方法會(huì )返回空值。
      16、isRequestedSessionIdValid
      public boolean isRequestedSessionIdValid();
      這個(gè)方法檢查與此請求關(guān)聯(lián)的session當前是不是有效。如果當前請求中使用的session無(wú)效,它將不能通過(guò)getSession方法返回。
      17、isRequestedSessionIdFromCookie
      public boolean isRequestedSessionIdFromCookie();
      如果這個(gè)請求的session id是通過(guò)客戶(hù)端的一個(gè)cookie提供的,該方法返回真,否則返回假。
      18、isRequestedSessionIdFromURL
      public boolean isRequestedSessionIdFromURL();
      如果這個(gè)請求的session id是通過(guò)客戶(hù)端的URL的一部分提供的,該方法返回真,否則返回假。請注意此方法與isRequestedSessionIdFromUrl在URL的拼寫(xiě)上不同。
      以下方法將被取消\

      19、isRequestedSessionIdFromUrl
      public boolean isRequestedSessionIdFromUrl();
      該方法被isRequestedSessionIdFromURL代替。

      二、HttpServletResponse接口
      定義\

      public interface HttpServletResponse extends ServletResponse
      描述一個(gè)返回到客戶(hù)端的HTTP回應。這個(gè)接口允許Servlet程序員利用HTTP協(xié)議規定的頭信息。
      成員變量
      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);
      在響應中增加一個(gè)指定的cookie??啥啻握{用該方法以定義多個(gè)cookie。為了設置適當的頭域,該方法應該在響應被提交之前調用。
      2、containsHeader
      public boolean containsHeader(String name);
      檢查是否設置了指定的響應頭。
      3、encodeRedirectURL
      public String encodeRedirectURL(String url);
       對sendRedirect方法使用的指定URL進(jìn)行編碼。如果不需要編碼,就直接返回這個(gè)URL。之所以提供這個(gè)附加的編碼方法,是因為在 redirect的情況下,決定是否對URL進(jìn)行編碼的規則和一般情況有所不同。所給的URL必須是一個(gè)絕對URL。相對URL不能被接收,會(huì )拋出一個(gè) IllegalArgumentException。
      所有提供給sendRedirect方法的URL都應通過(guò)這個(gè)方法運行,這樣才能確保會(huì )話(huà)跟蹤能夠在所有瀏覽器中正常運行。
      4、encodeURL
      public String encodeURL(String url);
       對包含session ID的URL進(jìn)行編碼。如果不需要編碼,就直接返回這個(gè)URL。Servlet引擎必須提供URL編碼方法,因為在有些情況下,我 們將不得不重寫(xiě)URL,例如,在響應對應的請求中包含一個(gè)有效的session,但是這個(gè)session不能被非URL的(例如cookie)的手段來(lái)維 持。
      所有提供給Servlet的URL都應通過(guò)這個(gè)方法運行,這樣才能確保會(huì )話(huà)跟蹤能夠在所有瀏覽器中正常運行。
      5、sendError
      public void sendError(int statusCode) throws IOException;
      public void sendError(int statusCode, String message) throws
         IOException;
      用給定的狀態(tài)碼發(fā)給客戶(hù)端一個(gè)錯誤響應。如果提供了一個(gè)message參數,這將作為響應體的一部分被發(fā)出,否則,服務(wù)器會(huì )返回錯誤代碼所對應的標準信息。
      調用這個(gè)方法后,響應立即被提交。在調用這個(gè)方法后,Servlet不會(huì )再有更多的輸出。
      6、sendRedirect
      public void sendRedirect(String location) throws IOException;
      使用給定的路徑,給客戶(hù)端發(fā)出一個(gè)臨時(shí)轉向的響應(SC_MOVED_TEMPORARILY)。給定的路徑必須是絕對URL。相對URL將不能被接收,會(huì )拋出一個(gè)IllegalArgumentException。
      這個(gè)方法必須在響應被提交之前調用。調用這個(gè)方法后,響應立即被提交。在調用這個(gè)方法后,Servlet不會(huì )再有更多的輸出。
      7、setDateHeader
      public void setDateHeader(String name, long date);
      用一個(gè)給定的名稱(chēng)和日期值設置響應頭,這里的日期值應該是反映自1970-1-1日(GMT)以來(lái)的精確到毫秒的長(cháng)整數。如果響應頭已經(jīng)被設置,新的值將覆蓋當前的值。
      8、setHeader
      public void setHeader(String name, String value);
      用一個(gè)給定的名稱(chēng)和域設置響應頭。如果響應頭已經(jīng)被設置,新的值將覆蓋當前的值。
      9、setIntHeader
      public void setIntHeader(String name, int value);
      用一個(gè)給定的名稱(chēng)和整形值設置響應頭。如果響應頭已經(jīng)被設置,新的值將覆蓋當前的值。
      10、setStatus
      public void setStatus(int statusCode);
      這個(gè)方法設置了響應的狀態(tài)碼,如果狀態(tài)碼已經(jīng)被設置,新的值將覆蓋當前的值。
      以下的幾個(gè)方法將被取消\
      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);
      這個(gè)方法設置了響應的狀態(tài)碼,如果狀態(tài)碼已經(jīng)被設置,新的值將覆蓋當前的值。如果提供了一個(gè)message,它也將會(huì )被作為響應體的一部分被發(fā)送。

      三、HttpSession接口
      定義\
      public interface HttpSession
      這個(gè)接口被Servlet引擎用來(lái)實(shí)現在HTTP客戶(hù)端和HTTP會(huì )話(huà)兩者的關(guān)聯(lián)。這種關(guān)聯(lián)可能在多外連接和請求中持續一段給定的時(shí)間。session用來(lái)在無(wú)狀態(tài)的HTTP協(xié)議下越過(guò)多個(gè)請求頁(yè)面來(lái)維持狀態(tài)和識別用戶(hù)。
      一個(gè)session可以通過(guò)cookie或重寫(xiě)URL來(lái)維持。
      方法
      1、getCreationTime
      public long getCreationTime();
      返回建立session的時(shí)間,這個(gè)時(shí)間表示為自1970-1-1日(GMT)以來(lái)的毫秒數。 
      2、getId
      public String getId();
      返回分配給這個(gè)session的標識符。一個(gè)HTTP session的標識符是一個(gè)由服務(wù)器來(lái)建立和維持的唯一的字符串。
      3、getLastAccessedTime
      public long getLastAccessedTime();
      返回客戶(hù)端最后一次發(fā)出與這個(gè)session有關(guān)的請求的時(shí)間,如果這個(gè)session是新建立的,返回-1。這個(gè)時(shí)間表示為自1970-1-1日(GMT)以來(lái)的毫秒數。 
      4、getMaxInactiveInterval
      public int getMaxInactiveInterval();
      返加一個(gè)秒數,這個(gè)秒數表示客戶(hù)端在不發(fā)出請求時(shí),session被Servlet引擎維持的最長(cháng)時(shí)間。在這個(gè)時(shí)間之后,Servlet引擎可能被Servlet引擎終止。如果這個(gè)session不會(huì )被終止,這個(gè)方法返回-1。
      當session無(wú)效后再調用這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      5、getValue
      public Object getValue(String name);
      返回一個(gè)以給定的名字綁定到session上的對象。如果不存在這樣的綁定,返回空值。
      當session無(wú)效后再調用這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      6、getValueNames
      public String[] getValueNames();
      以一個(gè)數組返回綁定到session上的所有數據的名稱(chēng)。
      當session無(wú)效后再調用這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      7、invalidate
      public void invalidate();
      這個(gè)方法會(huì )終止這個(gè)session。所有綁定在這個(gè)session上的數據都會(huì )被清除。并通過(guò)HttpSessionBindingListener接口的valueUnbound方法發(fā)出通告。
      8、isNew
      public boolean isNew();
       返回一個(gè)布爾值以判斷這個(gè)session是不是新的。如果一個(gè)session已經(jīng)被服務(wù)器建立但是還沒(méi)有收到相應的客戶(hù)端的請求,這個(gè)session將被 認為是新的。這意味著(zhù),這個(gè)客戶(hù)端還沒(méi)有加入會(huì )話(huà)或沒(méi)有被會(huì )話(huà)公認。在他發(fā)出下一個(gè)請求時(shí)還不能返回適當的session認證信息。
      當session無(wú)效后再調用這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      9、putValue
      public void putValue(String name, Object value);
      以給定的名字,綁定給定的對象到session中。已存在的同名的綁定會(huì )被重置。這時(shí)會(huì )調用HttpSessionBindingListener接口的valueBound方法。
      當session無(wú)效后再調用這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      10、removeValue
      public void removeValue(String name);
      取消給定名字的對象在session上的綁定。如果未找到給定名字的綁定的對象,這個(gè)方法什么出不做。 這時(shí)會(huì )調用HttpSessionBindingListener接口的valueUnbound方法。
      當session無(wú)效后再調用這個(gè)方法會(huì )拋出一個(gè)IllegalStateException。
      11、setMaxInactiveInterval
      public int setMaxInactiveInterval(int interval);
      設置一個(gè)秒數,這個(gè)秒數表示客戶(hù)端在不發(fā)出請求時(shí),session被Servlet引擎維持的最長(cháng)時(shí)間。
      以下這個(gè)方法將被取消\
      12、getSessionContext
      public HttpSessionContext getSessionContext();
      返回session在其中得以保持的環(huán)境變量。這個(gè)方法和其他所有HttpSessionContext的方法一樣被取消了。

      四、HttpSessionBindingListener接口
      定義\
      public interface HttpSessionBindingListener
      這個(gè)對象被加入到HTTP的session中,執行這個(gè)接口會(huì )通告有沒(méi)有什么對象被綁定到這個(gè)HTTP session中或被從這個(gè)HTTP session中取消綁定。
      方法
      1、valueBound
      public void valueBound(HttpSessionBindingEvent event);
      當一個(gè)對象被綁定到session中,調用此方法。HttpSession.putValue方法被調用時(shí),Servlet引擎應該調用此方法。
      2、valueUnbound
      public void valueUnbound(HttpSessionBindingEvent event);
      當一個(gè)對象被從session中取消綁定,調用此方法。HttpSession.removeValue方法被調用時(shí),Servlet引擎應該調用此方法。

      五、HttpSessionContext接口
      定義\
      此接口將被取消\
      public interface HttpSessionContext
      這個(gè)對象是與一組HTTP session關(guān)聯(lián)的單一的實(shí)體。
      這個(gè)接口由于安全的原因被取消,它出現在目前的版本中僅僅是為了兼容性的原因。這個(gè)接口的方法將模擬以前的版本的定義返回相應的值。
      方法
      1、getSession
      public HttpSession getSession(String sessionId);
      當初用來(lái)返回與這個(gè)session id相關(guān)的session?,F在返回空值。
      2、getIds
      public Enumeration getIds();
      當初用來(lái)返回這個(gè)環(huán)境下所有session id的列表?,F在返回空的列表。

      六、Cookie類(lèi)\
      定義\
      public class Cookie implements Cloneable
      這個(gè)類(lèi)描述了一個(gè)cookie,有關(guān)cookie的定義你可以參照Netscape Communications Corporation的說(shuō)明,也可以參照RFC 2109。
      構造函數
      public Cookie(String name, String value);
      用一個(gè)name-value對定義一個(gè)cookie。這個(gè)name必須能被HTTP/1.1所接受。
      以字符$開(kāi)頭的name被RFC 2109保留。
      給定的name如果不能被HTTP/1.1所接受,該方法拋出一個(gè)IllegalArgumentException。
      方法
      1、getComment
      public String getComment();
      返回描述這個(gè)cookie目的的說(shuō)明,如果未定義這個(gè)說(shuō)明,返回空值。
      2、getDomain
      public String getDomain();
      返回這個(gè)cookie可以出現的區域,如果未定義區域,返回空值。
      3、getMaxAge
      public int getMaxAge();
      這個(gè)方法返回這個(gè)cookie指定的最長(cháng)存活時(shí)期。如果未定義這個(gè)最長(cháng)存活時(shí)期,該方法返回-1。
      4、getName
      public String getName();
      該方法返回cookie名。
      5、getPath
      public String getPath();
      返回這個(gè)cookie有效的所有URL路徑的前綴,如果未定義,返回空值。
      6、getSecure
      public boolean getSecure();
      如果這個(gè)cookie只通過(guò)安全通道傳輸返回真,否則返回假。
      7、getValue
      public String getValue();
      該方法返回cookie的值。
      8、getVersion
      public int getVersion();
      返回cookie的版本。版本1由RFC 2109解釋。版本0由Netscape Communications Corporation的說(shuō)明解釋。新構造的cookie默認使用版本0。
      9、setComment
      public void setComment(String purpose);
      如果一個(gè)用戶(hù)將這個(gè)cookie提交給另一個(gè)用戶(hù),必須通過(guò)這個(gè)說(shuō)明描述這個(gè)cookie的目的。版本0不支持這個(gè)屬性。
      10、setDomain
      public void setDomain(String pattern);
       這個(gè)方法設置cookie的有效域的屬性。這個(gè)屬性指定了cookie可以出現的區域。一個(gè)有效域以一個(gè)點(diǎn)開(kāi)頭(.foo.com),這意味著(zhù)在指定的域 名解析系統的區域中(可能是www.foo.com但不是a.b.foo.com)的主機可以看到這個(gè)cookie。默認情況是,cookie只能返回保 存它的主機。
      11、setMaxAge
      public void setMaxAge(int expiry);
      這個(gè)方法設定這個(gè)cookie的最長(cháng)存活時(shí)期。在該存活時(shí)期之后,cookie會(huì )被終目。負數表示這個(gè)cookie不會(huì )生效,0將從客戶(hù)端刪除這個(gè)cookie。
         12、setPath
      public void setPath(String uri);
      這個(gè)方法設置cookie的路徑屬性??蛻?hù)端只能向以這個(gè)給定的路徑String開(kāi)頭的路徑返回cookie。
      13、setSecure
      public void setSecure(boolean flag);
      指出這個(gè)cookie只能通過(guò)安全通道(例如HTTPS)發(fā)送。只有當產(chǎn)生這個(gè)cookie的服務(wù)器使用安全協(xié)議發(fā)送這個(gè)cookie值時(shí)才能這樣設置。
      14、setValue
      public void setValue(String newValue);
      設置這個(gè)cookie的值,對于二進(jìn)制數據采用BASE64編碼。
      版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。
      15、setVersion
      public void setVersion(int v);
      設置cookie的版本號

      七、HttpServlet類(lèi)\
      定義\
      public class HttpServlet extends GenericServlet implements 
         Serializable
      這是一個(gè)抽象類(lèi),用來(lái)簡(jiǎn)化HTTP Servlet寫(xiě)作的過(guò)程。它是GenericServlet類(lèi)的擴充,提供了一個(gè)處理HTTP協(xié)議的框架。
      在這個(gè)類(lèi)中的service方法支持例如GET、POST這樣的標準的HTTP方法。這一支持過(guò)程是通過(guò)分配他們到適當的方法(例如doGet、doPost)來(lái)實(shí)現的。
      方法
      1、doDelete
      protected void doDelete(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP DELETE操作。這個(gè)操作允許客戶(hù)端請求從服務(wù)器上刪除URL。這一操作可能有負面影響,對此用戶(hù)就負起責任。
      這一方法的默認執行結果是返回一個(gè)HTTP BAD_REQUEST錯誤。當你要處理DELETE請求時(shí),你必須重載這一方法。
      2、doGet
      protected void doGet(HttpServletRequest request, 
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP GET操作。這個(gè)操作允許客戶(hù)端簡(jiǎn)單地從一個(gè)HTTP服務(wù)器“獲得”資源。對這個(gè)方法的重載將自動(dòng)地支持HEAD方法。
      GET操作應該是安全而且沒(méi)有負面影響的。這個(gè)操作也應該可以安全地重復。
      這一方法的默認執行結果是返回一個(gè)HTTP BAD_REQUEST錯誤。
      3、doHead
      protected void doHead(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP HEAD操作。默認的情況是,這個(gè)操作會(huì )按照一個(gè)無(wú)條件的GET方法來(lái)執行,該操作不向客戶(hù)端返回任何數據,而僅僅是返回包含內容長(cháng)度的頭信息。
      與GET操作一樣,這個(gè)操作應該是安全而且沒(méi)有負面影響的。這個(gè)操作也應該可以安全地重復。
      這個(gè)方法的默認執行結果是自動(dòng)處理HTTP HEAD操作,這個(gè)方法不需要被一個(gè)子類(lèi)執行。 
      4、doOptions
      protected void doOptions(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP OPTION操作。這個(gè)操作自動(dòng)地決定支持哪一種HTTP方法。例如,一個(gè)Servlet寫(xiě)了一個(gè)HttpServlet的子類(lèi)并重載了doGet方法,doOption會(huì )返回下面的頭:
      Allow: GET,HEAD,TRACE,OPTIONS
      你一般不需要重載這個(gè)方法。
      5、doPost
      protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP POST操作。這個(gè)操作包含請求體的數據,Servlet應該按照他行事。
      這個(gè)操作可能有負面影響。例如更新存儲的數據或在線(xiàn)購物。
      這一方法的默認執行結果是返回一個(gè)HTTP BAD_REQUEST錯誤。當你要處理POST操作時(shí),你必須在HttpServlet的子類(lèi)中重載這一方法。
      6、doPut
      protected void doPut(HttpServletRequest request, 
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP PUT操作。這個(gè)操作類(lèi)似于通過(guò)FTP發(fā)送文件。
      這個(gè)操作可能有負面影響。例如更新存儲的數據或在線(xiàn)購物。
      這一方法的默認執行結果是返回一個(gè)HTTP BAD_REQUEST錯誤。當你要處理PUT操作時(shí),你必須在HttpServlet的子類(lèi)中重載這一方法。
      7、doTrace
      protected void doTrace(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException;
      被這個(gè)類(lèi)的service方法調用,用來(lái)處理一個(gè)HTTP TRACE操作。這個(gè)操作的默認執行結果是產(chǎn)生一個(gè)響應,這個(gè)響應包含一個(gè)反映trace請求中發(fā)送的所有頭域的信息。
      當你開(kāi)發(fā)Servlet時(shí),在多數情況下你需要重載這個(gè)方法。
      8、getLastModified
      protected long getLastModified(HttpServletRequest request);
      返回這個(gè)請求實(shí)體的最后修改時(shí)間。為了支持GET操作,你必須重載這一方法,以精確地反映最后修改的時(shí)間。這將有助于瀏覽器和代理服務(wù)器減少裝載服務(wù)器和網(wǎng)絡(luò )資源,從而更加有效地工作。返回的數值是自1970-1-1日(GMT)以來(lái)的毫秒數。 
默認的執行結果是返回一個(gè)負數,這標志著(zhù)最后修改時(shí)間未知,它也不能被一個(gè)有條件的GET操作使用。
      9、service
      protected void service(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
            IOException;
      public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException;
      這是一個(gè)Servlet的HTTP-specific方案,它分配請求到這個(gè)類(lèi)的支持這個(gè)請求的其他方法。
      當你開(kāi)發(fā)Servlet時(shí),在多數情況下你不必重載這個(gè)方法。

      八、HttpSessionBindingEvent類(lèi)\
      定義\
      public class HttpSessionBindingEvent extends EventObject
      這個(gè)事件是在監聽(tīng)到HttpSession發(fā)生綁定和取消綁定的情況時(shí)連通HttpSessionBindingListener的。這可能是一個(gè)session被終止或被認定無(wú)效的結果。
      事件源是HttpSession.putValue或HttpSession.removeValue。
      構造函數
      public HttpSessionBindingEvent(HttpSession session, String name);
      通過(guò)引起這個(gè)事件的Session和發(fā)生綁定或取消綁定的對象名構造一個(gè)新的HttpSessionBindingEvent。
      方法
      1、getName
      public String getName();
      返回發(fā)生綁定和取消綁定的對象的名字。
      2、getSession
      public HttpSession getSession();
      返回發(fā)生綁定和取消綁定的session的名字。

         九、HttpUtils類(lèi)\
      定義\
      public class HttpUtils
      收集HTTP Servlet使用的靜態(tài)的有效的方法。
      方法
      1、getRequestURL
      public static StringBuffer getRequestURL(HttpServletRequest
            request);
      在服務(wù)器上重建客戶(hù)端用來(lái)建立請求的URL。這個(gè)方法反映了不同的協(xié)議(例如http和https)和端口,但不包含查詢(xún)字符串。
      這個(gè)方法返回一個(gè)StringBuffer而不是一個(gè)String,這樣URL可以被Servlet開(kāi)發(fā)者有效地修改。
      2、parsePostData
      public static Hashtable parsePostData(int len, 
            ServletInputstream in);
       解析一個(gè)包含MIME類(lèi)型application/x-www-form-urlencoded的數據的流,并創(chuàng )建一個(gè)具有關(guān)鍵值-數據對的 hash table。這里的關(guān)鍵值是字符串,數據是該字符串所對應的值的列表。一個(gè)關(guān)鍵值可以在POST的數據中出現一次或多次。這個(gè)關(guān)鍵值每出現一 次,它的相應的值就被加入到hash table中的字符串所對應的值的列表中。
      從POST數據讀出的數據將經(jīng)過(guò)URL解碼,+將被轉換為空格以十六進(jìn)制傳送的數據(例如%xx)將被轉換成字符。
      當POST數據無(wú)效時(shí),該方法拋出一個(gè)IllegalArgumentException。
      3、parseQueryString
      public static Hashtable parseQueryString(String s);
      解析一個(gè)查詢(xún)字符串,并創(chuàng )建一個(gè)具有關(guān)鍵值-數據對的hash table。這里的數據是該字符串所對應的值的列表。一個(gè)關(guān)鍵值可以出現一次或多次。這個(gè)關(guān)鍵值每出現一次,它的相應的值就被加入到hash table中的字符串所對應的值的列表中。
      從查詢(xún)字符串讀出的數據將經(jīng)過(guò)URL解碼,+將被轉換為空格以十六進(jìn)制傳送的數據(例如%xx)將被轉換成字符。
      當查詢(xún)字符串無(wú)效時(shí),該方法拋出一個(gè)IllegalArgumentException。

術(shù)語(yǔ)表
bytecode 
      字節碼:由Java編譯器和Java解釋程序生成的機器代碼。
cookie 
      由Web服務(wù)器建立的數據,該數據存儲在用戶(hù)的計算機上,提供了一個(gè)Web站點(diǎn)跟蹤用戶(hù)的參數并存儲在用戶(hù)自己硬盤(pán)上的方法。
HTTP 
      超文本傳輸協(xié)議。一個(gè)請求響應協(xié)議用來(lái)連接WWW服務(wù)器向客戶(hù)端瀏覽器傳輸HTML頁(yè)面。
輸入流對象
         一個(gè)對象,由ServletInputStream類(lèi)定義,被Servlet用來(lái)從客戶(hù)端讀取請求。
映射
      由Servlet實(shí)例和Servlet返回數據的URL組成的一對,例如,HelloServlet和/hello/index.html。
輸出流對象
         一個(gè)對象,由ServletOutputStream class類(lèi)定義,被Servlet用來(lái)向客戶(hù)端返回數據。
request dispatcher object 
      由RequestDispatcher接口定義的一個(gè)對象,用來(lái)從客戶(hù)端接收請求,并將其發(fā)送到Web服務(wù)器上可用的其他資源(例如Servlet、CGI、HTML文件或JSP文件)。
sandboxed servlet 
      在一個(gè)安全性約束下運行的Servlet。
servlet 
         一個(gè)小的,具有平臺無(wú)關(guān)性的,沒(méi)有圖形用戶(hù)界面的Java程序。它可以在許多方面擴充Web服務(wù)的功能。
servlet configuration object 
      ServletConfig接口定義的一個(gè)對象,用來(lái)配置一個(gè)Servlet。
servlet context object 
      ServletContext接口定義的一個(gè)對象。給予Servlet有關(guān)Servlet引擎的信息。
servlet引擎
      由Web服務(wù)器提供商制作的一個(gè)環(huán)境,可以允許Servlet在具體的Web服務(wù)器上運行。
servlet請求對象 
      由ServletRequest接口定義的一個(gè)對象,允許Servlet獲得用關(guān)客戶(hù)端請求的數據。
servlet response object 
      由ServletResponse接口定義的一個(gè)對象,允許Servlet作出響應。
servlet runner 
         Java Servlet Developer’s Kit (JSDK)中的sun.servlet.http.HttpServer過(guò)程,它使得Servlet得以運行。
會(huì )話(huà)跟蹤 
      在一個(gè)Web應用程序中,識別一個(gè)從同一個(gè)客戶(hù)端發(fā)出的連續的唯一的請求的能力。
SSL 
      加密套接字協(xié)議層。一個(gè)安全協(xié)議,用來(lái)在Iternet上的客戶(hù)端瀏覽器和服務(wù)器交換密鑰和加密數據。
URI 
      統一資源標識。定義一個(gè)Internet地址,它是一個(gè)URL的超集。
URL 
      統一資源路徑。這個(gè)地址定義了到達一個(gè)WWW上的文件的路線(xiàn),通常由協(xié)議前綴、域名、目錄名和文件名組成。 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1625299

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java Servlet API說(shuō)明文檔(2.1a版)
Java面試題集
javaweb筆記
Java Servlet API中文說(shuō)明文檔(2)
Servlet Session 跟蹤 | 菜鳥(niǎo)教程
Servlet/JSP深入詳解:基于Tomcat的Web開(kāi)發(fā)--第二章01
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久