javax.servlet.http API

软件包:javax.servlet.http       所包含的接口:HttpServletRequest;HttpServletResponse;HttpSession;HttpSessionBindingListener;HttpSessionContext。      所包含的类:Cookie;HttpServlet;HttpSessionBindingEvent;HttpUtils。      1、HttpServletRequest接口      定义\      public interface HttpServletRequest extends ServletRequest;      用来处理一个对Servlet的HTTP格式的请求信息。      方法      一、getAuthType      public String getAuthType();      返回这个请求的身份验证模式。      二、getCookies      public Cookie[] getCookies();      返回一个数组,该数组包含这个请求中当前的全部cookie。若是这个请求中没有cookie,返回一个空数组。      三、getDateHeader      public long getDateHeader(String name);      返回指定的请求头域的值,这个值被转换成一个反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。      若是头域不能转换,抛出一个IllegalArgumentException。若是这个请求头域不存在,这个方法返回-1。      四、getHeader      public String getHeader(String name);      返回一个请求头域的值。(译者注:与上一个方法不一样的是,该方法返回一个字符串)      若是这个请求头域不存在,这个方法返回-1。      五、getHeaderNames      public Enumeration getHeaderNames();      该方法返回一个String对象的列表,该列表反映请求的全部头域名。      有的引擎可能不容许经过这种方法访问头域,在这种状况下,这个方法返回一个空的列表。      六、getIntHeader      public int getIntHeader(String name);      返回指定的请求头域的值,这个值被转换成一个整数。      若是头域不能转换,抛出一个IllegalArgumentException。若是这个请求头域不存在,这个方法返回-1。      七、getMethod      public String getMethod();      返回这个请求使用的HTTP方法(例如:GET、POST、PUT)      八、getPathInfo      public String getPathInfo();       这个方法返回在这个请求的URL的Servlet路径以后的请求URL的额外的路径信息。若是这个请求URL包括一个查询字符串,在返回值内将不包括这个查询字符串。这个路径在返回以前必须通过URL解码。若是在这个请求的URL的Servlet路径以后没有路径信息。这个方法返回空值。      九、getPathTranslated      public String getPathTranslated();      这个方法得到这个请求的URL的Servlet路径以后的额外的路径信息,并将它转换成一个真实的路径。在进行转换前,这个请求的URL必须通过URL解码。若是在这个URL的Servlet路径以后没有附加路径信息。这个方法返回空值。      十、getQueryString      public String getQueryString();      返回这个请求URL所包含的查询字符串。一个查询字串符在一个URL中由一个“?”引出。若是没有查询字符串,这个方法返回空值。      十一、getRemoteUser      public String getRemoteUser      返回做了请求的用户名,这个信息用来做HTTP用户论证。      若是在请求中没有用户名信息,这个方法返回空值。      十二、getRequestedSessionId      public String getRequestedSessionId();      返回这个请求相应的session id。若是因为某种缘由客户端提供的session id是无效的,这个session id将与在当前session中的session id不一样,与此同时,将创建一个新的session。      若是这个请求没与一个session关联,这个方法返回空值。      1三、getRequestURI      public String getRequestURI();       从HTTP请求的第一行返回请求的URL中定义被请求的资源的部分。若是有一个查询字符串存在,这个查询字符串将不包括在返回值当中。例如,一个请求经过 /catalog/books?id=1这样的URL路径访问,这个方法将返回/catalog/books。这个方法的返回值包括了Servlet路径和路径信息。      若是这个URL路径中的的一部分通过了URL编码,这个方法的返回值在返回以前必须通过解码。      1四、getServletPath      public String getServletPath();       这个方法返回请求URL反映调用Servlet的部分。例如,一个Servlet被映射到/catalog/summer这个URL路径,而一个请求使用了/catalog/summer/casual这样的路径。所谓的反映调用Servlet的部分就是指/catalog/summer。      若是这个Servlet不是经过路径匹配来调用。这个方法将返回一个空值。      1五、getSession      public HttpSession getSession();      public HttpSession getSession(boolean create);      返回与这个请求关联的当前的有效的session。若是调用这个方法时没带参数,那么在没有session与这个请求关联的状况下,将会新建一个session。若是调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被创建。      为了确保session可以被彻底维持。Servlet开发者必须在响应被提交以前调用该方法。      若是带入的参数为假,并且没有session与这个请求关联。这个方法会返回空值。      1六、isRequestedSessionIdValid      public boolean isRequestedSessionIdValid();      这个方法检查与此请求关联的session当前是否是有效。若是当前请求中使用的session无效,它将不能经过getSession方法返回。      1七、isRequestedSessionIdFromCookie      public boolean isRequestedSessionIdFromCookie();      若是这个请求的session id是经过客户端的一个cookie提供的,该方法返回真,不然返回假。      1八、isRequestedSessionIdFromURL      public boolean isRequestedSessionIdFromURL();      若是这个请求的session id是经过客户端的URL的一部分提供的,该方法返回真,不然返回假。请注意此方法与isRequestedSessionIdFromUrl在URL的拼写上不一样。      如下方法将被取消\\r      1九、isRequestedSessionIdFromUrl      public boolean isRequestedSessionIdFromUrl();      该方法被isRequestedSessionIdFromURL代替。      2、HttpServletResponse接口      定义\\r      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定义的。      方法      一、addCookie      public void addCookie(Cookie cookie);      在响应中增长一个指定的cookie。可屡次调用该方法以定义多个cookie。为了设置适当的头域,该方法应该在响应被提交以前调用。      二、containsHeader      public boolean containsHeader(String name);      检查是否设置了指定的响应头。      三、encodeRedirectURL      public String encodeRedirectURL(String url);      对sendRedirect方法使用的指定URL进行编码。若是不须要编码,就直接返回这个URL。之因此提供这个附加的编码方法,是由于在redirect的状况下,决定是否对URL进行编码的规则和通常状况有所不一样。所给的URL必须是一个绝对URL。相对URL不能被接收,会抛出一个IllegalArgumentException。      全部提供给sendRedirect方法的URL都应经过这个方法运行,这样才能确保会话跟踪可以在全部浏览器中正常运行。      四、encodeURL      public String encodeURL(String url);       对包含session ID的URL进行编码。若是不须要编码,就直接返回这个URL。Servlet引擎必须提供URL编码方法,由于在有些状况下,咱们将不得不重写URL,例如,在响应对应的请求中包含一个有效的session,可是这个session不能被非URL的(例如cookie)的手段来维持。      全部提供给Servlet的URL都应经过这个方法运行,这样才能确保会话跟踪可以在全部浏览器中正常运行。      五、sendError      public void sendError(int statusCode) throws IOException;      public void sendError(int statusCode, String message) throws         IOException;      用给定的状态码发给客户端一个错误响应。若是提供了一个message参数,这将做为响应体的一部分被发出,不然,服务器会返回错误代码所对应的标准信息。      调用这个方法后,响应当即被提交。在调用这个方法后,Servlet不会再有更多的输出。      六、sendRedirect      public void sendRedirect(String location) throws IOException;      使用给定的路径,给客户端发出一个临时转向的响应(SC_MOVED_TEMPORARILY)。给定的路径必须是绝对URL。相对URL将不能被接收,会抛出一个IllegalArgumentException。      这个方法必须在响应被提交以前调用。调用这个方法后,响应当即被提交。在调用这个方法后,Servlet不会再有更多的输出。      七、setDateHeader      public void setDateHeader(String name, long date);      用一个给定的名称和日期值设置响应头,这里的日期值应该是反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。若是响应头已经被设置,新的值将覆盖当前的值。      八、setHeader      public void setHeader(String name, String value);      用一个给定的名称和域设置响应头。若是响应头已经被设置,新的值将覆盖当前的值。      九、setIntHeader      public void setIntHeader(String name, int value);      用一个给定的名称和×××值设置响应头。若是响应头已经被设置,新的值将覆盖当前的值。      十、setStatus      public void setStatus(int statusCode);      这个方法设置了响应的状态码,若是状态码已经被设置,新的值将覆盖当前的值。      如下的几个方法将被取消\      十一、encodeRedirectUrl      public String encodeRedirectUrl(String url);      该方法被encodeRedirectURL取代。       十二、encodeUrl      public String encodeUrl(String url);      该方法被encodeURL取代。       1三、setStatus      public void setStatus(int statusCode, String message);      这个方法设置了响应的状态码,若是状态码已经被设置,新的值将覆盖当前的值。若是提供了一个message,它也将会被做为响应体的一部分被发送。      3、HttpSession接口      定义\      public interface HttpSession      这个接口被Servlet引擎用来实如今HTTP客户端和HTTP会话二者的关联。这种关联可能在多外链接和请求中持续一段给定的时间。session用来在无状态的HTTP协议下越过多个请求页面来维持状态和识别用户。      一个session能够经过cookie或重写URL来维持。      方法      一、getCreationTime      public long getCreationTime();      返回创建session的时间,这个时间表示为自1970-1-1日(GMT)以来的毫秒数。       二、getId      public String getId();      返回分配给这个session的标识符。一个HTTP session的标识符是一个由服务器来创建和维持的惟一的字符串。      三、getLastAccessedTime      public long getLastAccessedTime();      返回客户端最后一次发出与这个session有关的请求的时间,若是这个session是新创建的,返回-1。这个时间表示为自1970-1-1日(GMT)以来的毫秒数。       四、getMaxInactiveInterval      public int getMaxInactiveInterval();      返加一个秒数,这个秒数表示客户端在不发出请求时,session被Servlet引擎维持的最长时间。在这个时间以后,Servlet引擎可能被Servlet引擎终止。若是这个session不会被终止,这个方法返回-1。      当session无效后再调用这个方法会抛出一个IllegalStateException。      五、getValue      public Object getValue(String name);      返回一个以给定的名字绑定到session上的对象。若是不存在这样的绑定,返回空值。      当session无效后再调用这个方法会抛出一个IllegalStateException。      六、getValueNames      public String[] getValueNames();      以一个数组返回绑定到session上的全部数据的名称。      当session无效后再调用这个方法会抛出一个IllegalStateException。      七、invalidate      public void invalidate();      这个方法会终止这个session。全部绑定在这个session上的数据都会被清除。并经过HttpSessionBindingListener接口的valueUnbound方法发出通告。      八、isNew      public boolean isNew();       返回一个布尔值以判断这个session是否是新的。若是一个session已经被服务器创建可是尚未收到相应的客户端的请求,这个session将被认为是新的。这意味着,这个客户端尚未加入会话或没有被会话公认。在他发出下一个请求时还不能返回适当的session认证信息。      当session无效后再调用这个方法会抛出一个IllegalStateException。      九、putValue      public void putValue(String name, Object value);      以给定的名字,绑定给定的对象到session中。已存在的同名的绑定会被重置。这时会调用HttpSessionBindingListener接口的valueBound方法。      当session无效后再调用这个方法会抛出一个IllegalStateException。      十、removeValue      public void removeValue(String name);      取消给定名字的对象在session上的绑定。若是未找到给定名字的绑定的对象,这个方法什么出不作。 这时会调用HttpSessionBindingListener接口的valueUnbound方法。      当session无效后再调用这个方法会抛出一个IllegalStateException。      十一、setMaxInactiveInterval      public int setMaxInactiveInterval(int interval);      设置一个秒数,这个秒数表示客户端在不发出请求时,session被Servlet引擎维持的最长时间。      如下这个方法将被取消\      十二、getSessionContext      public HttpSessionContext getSessionContext();      返回session在其中得以保持的环境变量。这个方法和其余全部HttpSessionContext的方法同样被取消了。      4、HttpSessionBindingListener接口      定义\      public interface HttpSessionBindingListener      这个对象被加入到HTTP的session中,执行这个接口会通告有没有什么对象被绑定到这个HTTP session中或被从这个HTTP session中取消绑定。      方法      一、valueBound      public void valueBound(HttpSessionBindingEvent event);      当一个对象被绑定到session中,调用此方法。HttpSession.putValue方法被调用时,Servlet引擎应该调用此方法。      二、valueUnbound      public void valueUnbound(HttpSessionBindingEvent event);      当一个对象被从session中取消绑定,调用此方法。HttpSession.removeValue方法被调用时,Servlet引擎应该调用此方法。      5、HttpSessionContext接口      定义\      此接口将被取消\      public interface HttpSessionContext      这个对象是与一组HTTP session关联的单一的实体。      这个接口因为安全的缘由被取消,它出如今目前的版本中仅仅是为了兼容性的缘由。这个接口的方法将模拟之前的版本的定义返回相应的值。      方法      一、getSession      public HttpSession getSession(String sessionId);      当初用来返回与这个session id相关的session。如今返回空值。      二、getIds      public Enumeration getIds();      当初用来返回这个环境下全部session id的列表。如今返回空的列表。      6、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。      方法      一、getComment      public String getComment();      返回描述这个cookie目的的说明,若是未定义这个说明,返回空值。      二、getDomain      public String getDomain();      返回这个cookie能够出现的区域,若是未定义区域,返回空值。      三、getMaxAge      public int getMaxAge();      这个方法返回这个cookie指定的最长存活时期。若是未定义这个最长存活时期,该方法返回-1。      四、getName      public String getName();      该方法返回cookie名。      五、getPath      public String getPath();      返回这个cookie有效的全部URL路径的前缀,若是未定义,返回空值。      六、getSecure      public boolean getSecure();      若是这个cookie只经过安全通道传输返回真,不然返回假。      七、getValue      public String getValue();      该方法返回cookie的值。      八、getVersion      public int getVersion();      返回cookie的版本。版本1由RFC 2109解释。版本0由Netscape Communications Corporation的说明解释。新构造的cookie默认使用版本0。      九、setComment      public void setComment(String purpose);      若是一个用户将这个cookie提交给另外一个用户,必须经过这个说明描述这个cookie的目的。版本0不支持这个属性。      十、setDomain      public void setDomain(String pattern);      这个方法设置cookie的有效域的属性。这个属性指定了cookie能够出现的区域。一个有效域以一个点开头(.foo.com),这意味着在指定的域名解析系统的区域中(多是 [url]www.foo.com[/url]但不是a.b.foo.com)的主机能够看到这个cookie。默认状况是,cookie只能返回保存它的主机。      十一、setMaxAge      public void setMaxAge(int expiry);      这个方法设定这个cookie的最长存活时期。在该存活时期以后,cookie会被终目。负数表示这个cookie不会生效,0将从客户端删除这个cookie。         十二、setPath      public void setPath(String uri);      这个方法设置cookie的路径属性。客户端只能向以这个给定的路径String开头的路径返回cookie。      1三、setSecure      public void setSecure(boolean flag);      指出这个cookie只能经过安全通道(例如HTTPS)发送。只有当产生这个cookie的服务器使用安全协议发送这个cookie值时才能这样设置。      1四、setValue      public void setValue(String newValue);      设置这个cookie的值,对于二进制数据采用BASE64编码。      版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。      1五、setVersion      public void setVersion(int v);      设置cookie的版本号      7、HttpServlet类\      定义\      public class HttpServlet extends GenericServlet implements          Serializable      这是一个抽象类,用来简化HTTP Servlet写做的过程。它是GenericServlet类的扩充,提供了一个处理HTTP协议的框架。      在这个类中的service方法支持例如GET、POST这样的标准的HTTP方法。这一支持过程是经过分配他们到适当的方法(例如doGet、doPost)来实现的。      方法      一、doDelete      protected void doDelete(HttpServletRequest request,            HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP DELETE操做。这个操做容许客户端请求从服务器上删除URL。这一操做可能有负面影响,对此用户就负起责任。      这一方法的默认执行结果是返回一个HTTP BAD_REQUEST错误。当你要处理DELETE请求时,你必须重载这一方法。      二、doGet      protected void doGet(HttpServletRequest request,             HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP GET操做。这个操做容许客户端简单地从一个HTTP服务器“得到”资源。对这个方法的重载将自动地支持HEAD方法。      GET操做应该是安全并且没有负面影响的。这个操做也应该能够安全地重复。      这一方法的默认执行结果是返回一个HTTP BAD_REQUEST错误。      三、doHead      protected void doHead(HttpServletRequest request,            HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP HEAD操做。默认的状况是,这个操做会按照一个无条件的GET方法来执行,该操做不向客户端返回任何数据,而仅仅是返回包含内容长度的头信息。      与GET操做同样,这个操做应该是安全并且没有负面影响的。这个操做也应该能够安全地重复。      这个方法的默认执行结果是自动处理HTTP HEAD操做,这个方法不须要被一个子类执行。       四、doOptions      protected void doOptions(HttpServletRequest request,            HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP OPTION操做。这个操做自动地决定支持哪种HTTP方法。例如,一个Servlet写了一个HttpServlet的子类并重载了doGet方法,doOption会返回下面的头:      Allow: GET,HEAD,TRACE,OPTIONS      你通常不须要重载这个方法。      五、doPost      protected void doPost(HttpServletRequest request,            HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP POST操做。这个操做包含请求体的数据,Servlet应该按照他行事。      这个操做可能有负面影响。例如更新存储的数据或在线购物。      这一方法的默认执行结果是返回一个HTTP BAD_REQUEST错误。当你要处理POST操做时,你必须在HttpServlet的子类中重载这一方法。      六、doPut      protected void doPut(HttpServletRequest request,             HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP PUT操做。这个操做相似于经过FTP发送文件。      这个操做可能有负面影响。例如更新存储的数据或在线购物。      这一方法的默认执行结果是返回一个HTTP BAD_REQUEST错误。当你要处理PUT操做时,你必须在HttpServlet的子类中重载这一方法。      七、doTrace      protected void doTrace(HttpServletRequest request,            HttpServletResponse response) throws ServletException,            IOException;      被这个类的service方法调用,用来处理一个HTTP TRACE操做。这个操做的默认执行结果是产生一个响应,这个响应包含一个反映trace请求中发送的全部头域的信息。      当你开发Servlet时,在多数状况下你须要重载这个方法。      八、getLastModified      protected long getLastModified(HttpServletRequest request);      返回这个请求实体的最后修改时间。为了支持GET操做,你必须重载这一方法,以精确地反映最后修改的时间。这将有助于浏览器和代理服务器减小装载服务器和网络资源,从而更加有效地工做。返回的数值是自1970-1-1日(GMT)以来的毫秒数。 默认的执行结果是返回一个负数,这标志着最后修改时间未知,它也不能被一个有条件的GET操做使用。      九、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时,在多数状况下你没必要重载这个方法。      8、HttpSessionBindingEvent类\      定义\      public class HttpSessionBindingEvent extends EventObject      这个事件是在监听到HttpSession发生绑定和取消绑定的状况时连通HttpSessionBindingListener的。这多是一个session被终止或被认定无效的结果。      事件源是HttpSession.putValue或HttpSession.removeValue。      构造函数      public HttpSessionBindingEvent(HttpSession session, String name);      经过引发这个事件的Session和发生绑定或取消绑定的对象名构造一个新的HttpSessionBindingEvent。      方法      一、getName      public String getName();      返回发生绑定和取消绑定的对象的名字。      二、getSession      public HttpSession getSession();      返回发生绑定和取消绑定的session的名字。         9、HttpUtils类\      定义\      public class HttpUtils      收集HTTP Servlet使用的静态的有效的方法。      方法      一、getRequestURL      public static StringBuffer getRequestURL(HttpServletRequest            request);      在服务器上重建客户端用来创建请求的URL。这个方法反映了不一样的协议(例如http和https)和端口,但不包含查询字符串。      这个方法返回一个StringBuffer而不是一个String,这样URL能够被Servlet开发者有效地修改。      二、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。      三、parseQueryString      public static Hashtable parseQueryString(String s);      解析一个查询字符串,并建立一个具备关键值-数据对的hash table。这里的数据是该字符串所对应的值的列表。一个关键值能够出现一次或屡次。这个关键值每出现一次,它的相应的值就被加入到hash table中的字符串所对应的值的列表中。      从查询字符串读出的数据将通过URL解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。      当查询字符串无效时,该方法抛出一个IllegalArgumentException。

相关文章
相关标签/搜索