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

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

      二、HttpServletResponse接口
      定義\

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

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

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

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

      六、Cookie類\
      定義\
      public class Cookie implements Cloneable
      這個類描述了一個cookie,有關cookie的定義你可以參照Netscape Communications Corporation的說明,也可以參照RFC 2109。
      構造函數
      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可以出現的區域,如果未定義區域,返回空值。
      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的說明解釋。新構造的cookie默認使用版本0。
      9、setComment
      public void setComment(String purpose);
      如果一個用戶將這個cookie提交給另一個用戶,必須通過這個說明描述這個cookie的目的。版本0不支持這個屬性。
      10、setDomain
      public void setDomain(String pattern);
      這個方法設置cookie的有效域的屬性。這個屬性指定了cookie可以出現的區域。一個有效域以一個點開頭(.foo.com),這意味著在指定的域名解析系統的區域中(可能是www.foo.com但不是a.b.foo.com)的主機可以看到這個cookie。默認情況是,cookie只能返回保存它的主機。
      11、setMaxAge
      public void setMaxAge(int expiry);
      這個方法設定這個cookie的最長存活時期。在該存活時期之后,cookie會被終目。負數表示這個cookie不會生效,0將從客戶端刪除這個cookie。
         12、setPath
      public void setPath(String uri);
      這個方法設置cookie的路徑屬性??蛻舳酥荒芟蛞赃@個給定的路徑String開頭的路徑返回cookie。
      13、setSecure
      public void setSecure(boolean flag);
      指出這個cookie只能通過安全通道(例如HTTPS)發送。只有當產生這個cookie的服務器使用安全協議發送這個cookie值時才能這樣設置。
      14、setValue
      public void setValue(String newValue);
      設置這個cookie的值,對于二進制數據采用BASE64編碼。
      版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。
      15、setVersion
      public void setVersion(int v);
      設置cookie的版本號

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

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

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