ServletRequest和ServletResponse接口方法汇总

来源:互联网 发布:nginx css 不显示 编辑:程序博客网 时间:2024/04/25 22:31
ServletRequest和ServletResponse接口都在javax.servlet包中定义,我们首先看一下ServletRequest接口中的常用方法。
 public java.lang.Object getAttribute(java.lang.String name)
返回以name为名字的属性的值。如果该属性不存在,这个方法将返回null。
 public java.util.Enumeration getAttributeNames()
返回请求中所有可用的属性的名字。如果在请求中没有属性,这个方法将返回一个空的枚举集合。
 public void removeAttribute(java.lang.String name)
移除请求中名字为name的属性。
 public void setAttribute(java.lang.String name, java.lang.Object o)
在请求中保存名字为name的属性。如果第二个参数o为null,那么相当于调用removeAttribute(name)。
 public java.lang.String getCharacterEncoding()
返回请求正文使用的字符编码的名字。如果请求没有指定字符编码,这个方法将返回null。
 public int getContentLength()
以字节为单位,返回请求正文的长度。如果长度不可知,这个方法将返回-1。
 public java.lang.String getContentType()
返回请求正文的MIME类型。如果类型不可知,这个方法将返回null。
 public ServletInputStream getInputStream()
返回一个输入流,使用该输入流以二进制方式读取请求正文的内容。javax.servlet.ServletInputStream是一个抽象类,继承自java.io.InputStream。
 public java.lang.String getLocalAddr()
返回接收到请求的网络接口的IP地址,这个方法是在Servlet 2.4规范中新增的。
 public java.lang.String getLocalName()
返回接收到请求的IP接口的主机名,这个方法是在Servlet 2.4规范中新增的。
 public int getLocalPort()
返回接收到请求的网络接口的IP端口号,这个方法是在Servlet 2.4规范中新增的。
 public java.lang.String getParameter(java.lang.String name)
返回请求中name参数的值。如果name参数有多个值,那么这个方法将返回值列表中的第一个值。如果在请求中没有找到这个参数,这个方法将返回null。
 public java.util.Enumeration getParameterNames()
返回请求中包含的所有参数的名字。如果请求中没有参数,这个方法将返回一个空的枚举集合。
 public java.lang.String[] getParameterValues(java.lang.String name)
返回请求中name参数所有的值。如果这个参数在请求中并不存在,这个方法将返回null。
 public java.lang.String getProtocol()
返回请求使用的协议的名字和版本,例如:HTTP/1.1。
 public java.io.BufferedReader getReader() throws java.io.IOException
返回BufferedReader对象,以字符数据方式读取请求正文。
 public java.lang.String getRemoteAddr()
返回发送请求的客户端或者最后一个代理服务器的IP地址。
 public java.lang.String getRemoteHost()
返回发送请求的客户端或者最后一个代理服务器的完整限定名。
 public int getRemotePort()
返回发送请求的客户端或者最后一个代理服务器的IP源端口,这个方法是在Servlet 2.4规范中新增的。
 public RequestDispatcher getRequestDispatcher(java.lang.String path)
返回RequestDispatcher对象,作为path所定位的资源的封装。
 public java.lang.String getServerName()
返回请求发送到的服务器的主机名。
 public int getServerPort()
返回请求发送到的服务器的端口号。
 public void setCharacterEncoding (java.lang.String env) throws java.io.Unsupported EncodingException
覆盖在请求正文中所使用的字符编码的名字。
下面我们看一下ServletResponse接口中的常用方法。
 public void flushBuffer() throws java.io.IOException
强制把任何在缓存中的内容发送到客户端。
 public int getBufferSize()
返回实际用于响应的缓存的大小。如果没有使用缓存,这个方法将返回0。
 public java.lang.String getCharacterEncoding()
返回在响应中发送的正文所使用的字符编码(MIME字符集)。
 public java.lang.String getContentType()
返回在响应中发送的正文所使用的MIME类型。
 public ServletOutputStream getOutputStream() throws java.io.IOException
返回ServletOutputStream对象,用于在响应中写入二进制数据。javax.servlet. ServletOutputStream是一个抽象类,继承自java.io.OutputStream。
 public java.io.PrintWriter getWriter() throws java.io.IOException
返回PrintWriter对象,用于发送字符文本到客户端。PrintWriter对象使用getCharacterEncoding()方法返回的字符编码。如果没有指定响应的字符编码方式,默认将使用ISO-8859-1。
 public boolean isCommitted()
返回一个布尔值,指示是否已经提交了响应。
 public void reset()
清除在缓存中的任何数据,包括状态代码和消息报头。如果响应已经被提交,这个方法将抛出IllegalStateException异常。
 public void resetBuffer()
清除在缓存中的响应内容,保留状态代码和消息报头。如果响应已经被提交,这个方法将抛出IllegalStateException异常。
 public void setBufferSize(int size)
设置响应正文的缓存大小。Servlet容器将使用一个缓存,其大小至少是请求的尺寸大小。这个方法必须在响应正文被写入之前调用,如果内容已经被写入或者响应对象已经被提交,这个方法将抛出IllegalStateException异常。
 public void setCharacterEncoding(java.lang.String charset)
设置发送到客户端的响应的字符编码,例如UTF-8。
 public void setContentLength(int len)
对于HTTP Servlet,在响应中,设置内容正文的长度,这个方法设置HTTP Content-Length实体报头。
 public void setContentType(java.lang.String type)

 设置要发送到客户端的响应的内容类型,此时响应应该还没有提交。给出的内容类型可以包括字符编码说明,例如:text/html;charset=UTF-8。如果这个方法在 getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。这个方法如果在getWriter()方法被调用之后或者在响应被提交之后调用,将不会设置响应的字符编码。在使用HTTP协议的情况中,这个方法设置Content-Type实体报头。

在javax.servlet.http包中,定义了HttpServletRequestHttpServletResponse这两个接口。

这两个接口分别继承自javax.servlet.ServletRequest和javax.servlet.ServletResponse接口。

在HttpServletRequest接口中新增的常用方法如下所述。
  public java.lang.String getContextPath()
返回请求URI中表示请求上下文的部分,上下文路径是请求URI的开始部分。上下文路径总是以斜杠(/)开头,但结束没有斜杠(/)。在默认(根)上下文中,这个方法返回空字符串""。例如,请求URI为“/sample/test”,调用该方法返回路径为“/sample”。
  public Cookie[] getCookies()
返回客户端在此次请求中发送的所有Cookie对象。
  public java.lang.String getHeader(java.lang.String name)
返回名字为name的请求报头的值。如果请求中没有包含指定名字的报头,这个方法返回null。
  public java.util.Enumeration getHeaderNames()
返回此次请求中包含的所有报头名字的枚举集合。
  public java.util.Enumeration getHeaders(java.lang.String name)
返回名字为name的请求报头所有的值的枚举集合。
  public java.lang.String getMethod()
返回此次请求所使用的HTTP方法的名字,例如,GET、POST或PUT。
  public java.lang.String getPathInfo()
返回与客户端发送的请求URL相联系的额外的路径信息。额外的路径信息是跟在Servlet的路径之后、查询字符串之前的路径,并以斜杠(/)字符开始。例如,假定在web.xml文件中MyServlet类映射的URL是/myservlet/*,用户请求的URL是http://localhost:8080/ ch12/myservlet/test,当我们在HttpServletRequest对象上调用getPathInfo()时,该方法将返回/test。如果没有额外的路径信息,getPathInfo()方法将返回null。
  public java.lang.String getPathTranslated()
将额外的路径信息转换为真实的路径。例如,在上面的例子中假定ch12 Web应用程序位于D:\OpenSource\apache-tomcat-7.0.23\webapps\ch12目录,当用户请求http://localhost: 8080/ch12/myservlet/test时,在请求对象上调用getPathTranslated()方法将返回D:\OpenSource\apache-tomcat-7.0.23\webapps\ch12\test。
  public java.lang.String getQueryString()
返回请求URL中在路径后的查询字符串。如果在URL中没有查询字符串,该方法返回null。例如,有如下的请求URL:
http://localhost:8080/ch12/logon.jsp?action=logon
调用getQueryString()方法将返回action=logon。
  public java.lang.String getRequestURI()
返回请求URL中从主机名到查询字符串之间的部分。例如:
请求行                                                 返回值
POST /some/path.html HTTP/1.1                        /some/path.html
GET http://foo.bar/a.html HTTP/1.0                    /a.html
HEAD /xyz?a=b HTTP/1.1                                /xyz
  public java.lang.StringBuffer getRequestURL()
重新构造客户端用于发起请求的 URL。返回的 URL 包括了协议、服务器的名字、端口号和服务器的路径,但是不包括查询字符串参数。
要注意的是,如果请求使用RequestDispatcher.forward(ServletRequest, ServletResponse)方法被转发到另一个Servlet中,那么你在这个Servlet中调用getRequestURL(),得到的将是获取RequestDispatcher对象时使用的URL,而不是原始的请求URL。
  public java.lang.String getServletPath()
返回请求URI中调用Servlet的部分。这部分的路径以斜杠(/)开始,包括了Servlet的名字或者路径,但是不包括额外的路径信息和查询字符串。例如,假定在 web.xml 文件中 MyServlet 类映射的 URL 是/myservlet/*,用户请求的URL是http://localhost:8080/ch12/myservlet/test,当我们在HttpServletRequest对象上调用 getServletPath()时,该方法将返回/myservlet。如果用于处理请求的Servlet与URL样式“/*”相匹配,那么这个方法将返回空字符串("")。
  public HttpSession getSession()
返回和此次请求相关联的Session,如果没有给客户端分配Session,则创建一个新的Session。
  public HttpSession getSession(boolean create)
返回和此次请求相关联的Session,如果没有给客户端分配Session,而create参数为true,则创建一个新的Session。如果create参数为false,而此次请求没有一个有效的HttpSession,则返回null。
在HttpServletResponse接口中,新增的常用方法如下所述。
  public void addCookie(Cookie cookie)
增加一个Cookie到响应中。这个方法可以被多次调用,用于设置多个Cookie。
  public void addHeader(java.lang.String name, java.lang.String value)
用给出的name和value,增加一个响应报头到响应中。
  public boolean containsHeader(java.lang.String name)
判断以name为名字的响应报头是否已经设置。
  public java.lang.String encodeRedirectURL(java.lang.String url)
使用Session ID对用于重定向的url进行编码,以便用于sendRedirect()方法中。如果该url不需要编码,则返回未改变的url。(关于这个方法的使用,请参见第5章。)
  public java.lang.String encodeURL(java.lang.String url)
使用Session ID对指定的url进行编码。如果该url不需要编码,则返回未改变的url。(关于这个方法的使用,请参见第5章。)
  public void sendError(int sc) throws java.io.IOException
使用参数sc表示的状态代码发送一个错误响应到客户端,同时清除缓存。如果响应已经被提交,这个方法将抛出IllegalStateException异常。
  public void sendError(int sc, java.lang.String msg) throws java.io.IOException
使用指定的状态代码发送一个错误响应到客户端。服务器默认会创建一个包含了指定消息的服务器端错误页面作为响应,设置内容类型为“text/html”。如果Web应用程序已经声明了对应于指定状态代码的错误页面,则服务器会将这个页面发送给客户端,而不理会参数msg指定的错误消息。如果响应已经被提交,这个方法将抛出IllegalStateException异常。
  public void sendRedirect(java.lang.String location) throws java.io.IOException
发送一个临时的重定向响应到客户端,让客户端访问新的URL。如果指定的位置是相对URL,Servlet容器在发送响应到客户端之前,必须将相对URL转换为绝对URL。如果响应已经被提交,这个方法将抛出IllegalStateException异常。
  public void setHeader(java.lang.String name, java.lang.String value)
用给出的name和value,设置一个响应报头。如果这个报头已经被设置,新的值将覆盖先前的值。
  public void setStatus(int sc)
为响应设置状态代码。 

0 0
原创粉丝点击