Java#HttpServletResponse

public void addCookie(Cookie cookie)

将指定 cookie 添加到响应。可多次调用此方法设置一个以上的 cookie。

cookie 要返回给客户端的 Cookie

public void addDateHeader(String name, long date)

用给定名称和日期值添加响应头。该日期根据距历元时间的毫秒数指定。此方法允许响应头有多个值。

name 要设置的头的名称

date 附加的日期值

public void addHeader(String name, String value)

用给定名称和值添加响应头。此方法允许响应头有多个值。

name 头的名称

value 附加的头值

public void addIntHeader(String name, int value)

用给定名称和整数值添加响应头。此方法允许响应头有多个值。

name 头的名称

value 指定的整数值

public boolean containsHeader(String name)

返回一个 boolean 值,指示是否已经设置指定的响应头。

name 头名称

return 如果已经设置指定的响应头,则返回 true;否则返回 false

public String encodeRedirectURL(String url)

对指定 URL 进行编码,以便在 sendRedirect 方法中使用它,如果不需要编码,则返回未更改的 URL。此方法的实现包含可以确定Session ID 是否需要在 URL 中编码的逻辑。因为进行此确定的规则可能不同于用来确定是否对普通链接进行编码的规则,所以此方法与 encodeURL 方法是分开的。 发送到 HttpServletResponse.sendRedirect 方法的所有 URL 都应该通过此方法运行。否则,URL 重写不能用于不支持 cookie 的浏览器。

url 要编码的 URL。

return 如果需要编码,则返回编码的 URL;否则返回未更改的 URL。

public void sendError(int sc, String msg) throws java.io.IOException

使用指定状态将错误响应发送到客户端。默认情况下,服务器将创建类似 HTML 格式的服务器错误页面的响应,该页面包含指定消息,内容类型设置为 "text/html",并且保持 cookie 和其他头不变。 如果已经对 Web 应用程序进行了对应于传入状态代码的错误页面声明,则将优先处理建议的 msg 参数。

如果已经提交了响应,则此方法抛出 IllegalStateException。使用此方法后,响应应该被视为已经被提交,不能再写入。

sc 错误状态代码

msg 描述性消息

Throws java.io.IOException: 如果发生输入或输出异常

Throws IllegalStateException: 如果提交了响应

public void sendError(int sc) throws java.io.IOException

使用指定状态代码并清除缓冲区将错误响应发送到客户端。

如果已经提交了响应,则此方法抛出 IllegalStateException。使用此方法后,响应应该被视为已经被提交,不能再写入。

sc 错误状态代码

Throws java.io.IOException: 如果发生输入或输出异常

Throws IllegalStateException: 如果在此方法调用之前提交了响应

public void sendRedirect(String location) throws java.io.IOException

使用指定重定向位置 URL 将临时重定向响应发送到客户端。此方法可以接受相对 URL;servlet 容器必须在将响应发送到客户端之前将相对 URL 转换为绝对 URL。如果位置是相对的,没有前导 ‘/‘,则容器将相对于当前请求 URI 对其进行解释。如果位置是相对的,有一个前导 ‘/‘,则容器将相对于 servlet 容器根对其进行解释。如果已经提交了响应,则此方法抛出 IllegalStateException。使用此方法后,响应应该被视为已经被提交,不能再写入。

location 重定向位置 URL

Throws java.io.IOException: 如果发生输入或输出异常

Throws IllegalStateException: 如果提交了响应,或者部分 URL 是给定的且无法将其转换为有效 URL

public void setDateHeader(String name, long date)

用给定名称和日期值设置响应头。该日期根据距历元时间的毫秒数指定。如果已经设置了头,则新值将重写以前的值。containsHeader 方法可用于测试在设置其值之前头是否存在。

name 要设置的头的名称

date 指定的日期值

public void setHeader(String name, String value)

用给定名称和值设置响应头。如果已经设置了头,则新值将重写以前的值。containsHeader 方法可用于测试在设置其值之前头是否存在。

name 头的名称

value 头值,

public void setIntHeader(String name, int value) Posts (0)

用给定名称和整数值设置响应头。如果已经设置了头,则新值将重写以前的值。containsHeader 方法可用于测试在设置其值之前头是否存在。

name 头的名称

value 指定的整数值

public void setStatus(int sc)

设置此响应的状态代码。此方法用于设置没有错误时的返回状态代码(例如状态代码 SC_OK 或 SC_MOVED_TEMPORARILY)。如果有错误,并且调用者希望调用 Web 应用程序中定义的错误页面,则应改用 sendError 方法。

容器清除缓冲区,设置 Location 头,并保留 cookie 和其他头。

sc 状态代码

HttpServletResponse继承ServletResponse的方法:

public void flushBuffer() throws java.io.IOException

强行将缓冲区中的所有内容写入客户端。调用此方法会自动提交响应,这意味着将编写状态代码和头。

public void reset()

清除缓冲区中存在的所有数据以及状态代码和头。如果已提交响应,则此方法将抛出 IllegalStateException。

Throws IllegalStateException:已提交响应异常

public void resetBuffer()

清除响应中底层缓冲区的内容,而不清除头或状态代码。如果已提交响应,则此方法将抛出 IllegalStateException。

public void setBufferSize(int size)

设置响应正文的首选缓冲区大小。servlet 容器将使用至少与所请求大小一样大的缓冲区。可使用 getBufferSize 获得使用的实际缓冲区大小。

较大的缓冲区允许在实际发送任何东西之前编写更多的内容,这为 servlet 提供了更多时间来设置适当的状态代码和头。较小的缓冲区会减少服务器内存负载,并允许客户端更快地开始接收数据。必须在编写任何响应正文内容之前调用此方法;如果已经编写了内容或者已经提交了响应对象,则此方法将抛出 IllegalStateException。

size 首选缓冲区大小

Throws IllegalStateException: 如果在已编写内容后调用此方法

public int getBufferSize()

返回用于该响应的实际缓冲区大小。如果未使用任何缓冲,则此方法返回 0。

return 使用的实际缓冲区大小

public void setCharacterEncoding(String charset)

设置将发送到客户端的响应的字符编码 (MIME charset),例如,将它设置为 UTF-8。如果已通过 #setContentType 或 #setLocale 设置了字符编码,则此方法将重写该字符编码。用 text/html 的 String 调用 #setContentType 并用 UTF-8 的 String 调用此方法等效于用 text/html; charset=UTF-8 的 String 调用 setContentType。

可重复调用此方法来更改字符编码。如果在已调用 getWriter 之后或者在已提交响应之后调用此方法,则此方法没有任何效果。

public String getCharacterEncoding()

返回用于此响应中发送的正文的字符编码 (MIME charset) 名称。可能已使用 #setCharacterEncoding 或 #setContentType 方法显式指定字符编码,或使用 #setLocale 方法隐式指定它。显式指定优先于隐式指定。在已调用 getWriter 之后或者在已提交响应之后调用这些方法不会对字符编码产生任何影响。如果未指定字符编码,则返回 ISO-8859-1。

return 指定字符编码名称的 String,例如 UTF-8

public boolean isCommitted()

返回指示响应是否已提交的 boolean 值。已提交的响应已将其状态代码和头编写好。

return 指示响应是否已提交的 boolean 值

public void setContentLength(int len)

设置 HTTP servlet 中响应的内容正文的长度,此方法设置 HTTP Content-Length 头。

len 指定将返回到客户端的内容长度的整数;设置 Content-Length 头

public void setContentType(String type)

设置将发送到客户端的响应的内容类型,如果该响应尚未提交。给定内容类型可能包含字符编码规范,例如 text/html;charset=UTF-8。如果在调用 getWriter 之前调用此方法,则只根据给定内容类型设置响应的字符编码。

可重复调用此方法来更改内容类型和字符编码。如果在已提交响应之后调用此方法,则此方法没有任何效果。如果在已调用 getWriter 之后或者在已提交响应之后调用此方法,则该方法不会设置响应的字符编码。

type 指定内容的 MIME 类型的 String

public String getContentType()

返回用于此响应中发送的 MIME 正文的内容类型。必须在提交响应之前已使用 #setContentType 指定适当的内容类型。如果未指定内容类型,则此方法返回 null。如果已指定内容类型,并且已经如 #getCharacterEncoding 中所述显式或隐式指定了字符编码或者已调用 #getWriter,则返回的字符串中将包含 charset 参数。如果未指定字符编码,则省略 charset 参数。

return 指定内容类型的 String,例如 text/html; charset=UTF-8,或者返回 null

public void setLocale(java.util.Locale loc)

设置响应的语言环境,如果该响应尚未提交。如果尚未使用 #setContentType 或 #setCharacterEncoding 显式设置字符编码、尚未调用 getWriter,并且响应尚未提交,则此方法还将设置适合该语言环境的响应的字符编码。如果部署描述符包含 locale-encoding-mapping-list 元素,并且该元素提供了给定语言环境的映射,则使用该映射。否则,从语言环境到字符编码的映射是与容器相关的。可重复调用此方法来更改语言环境和字符编码。如果在已提交响应之后调用该方法,则此方法没有任何效果。如果在已使用 charset 规范调用 #setContentType 之后、在已调用 #setCharacterEncoding 之后、在已调用 getWriter 之后,或者在已提交响应之后调用此方法,则此方法不会设置响应的字符编码。

loc 响应的语言环境

public java.util.Locale getLocale()

返回使用 #setLocale 方法指定的此响应的语言环境。在已提交响应后调用 setLocale 没有任何效果。如果未指定任何语言环境,则返回容器的默认语言环境。

public ServletOutputStream getOutputStream() throws java.io.IOException

返回适用于在响应中编写二进制数据的 ServletOutputStream。servlet 容器不会编码二进制数据。对 ServletOutputStream 调用 flush() 将提交响应。可调用此方法或 #getWriter 编写正文,而不是两种方法都调用。

return 用于编写二进制数据的 ServletOutputStream

Throws IllegalStateException: 如果已对此响应调用 getWriter 方法

Throws java.io.IOException: 如果发生输入或输出异常

public java.io.PrintWriter getWriter() throws java.io.IOException

返回可将字符文本发送到客户端的 PrintWriter 对象。PrintWriter 使用 #getCharacterEncoding 返回的字符编码。如果未如 getCharacterEncoding 中所述指定响应的字符编码(即该方法只返回默认值 ISO-8859-1),则 getWriter 会将字符编码更新到 ISO-8859-1。 对 PrintWriter 调用 flush() 将提交响应。

可调用此方法或 #getOutputStream 编写正文,而不是两种方法都调用。

return 可将字符数据返回到客户端的 PrintWriter 对象。

Throws UnsupportedEncodingException: 如果无法使用getCharacterEncoding 返回的字符编码

Throws IllegalStateException: 如果已对此响应对象调用 getOutputStream 方法

Throws java.io.IOException: 如果发生输入或输出异常

响应消息头及示例:

Location: http://hi.baidu.com/wjy9/home    通知浏览器去访问另一个资源

Server:apache tomcat                                          说明服务器

Content-Encoding: gzip                                       通知浏览器数据的压缩格式

Content-Length: 80                                              通知浏览器发送数据的长度

Content-Language: zh-cn                                   通知浏览器语言环境

Content-Type: text/html; charset=GB2312            通知浏览器文件的格式和编码

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT       告诉浏览器文件的修改时间

Refresh: 1;url= http://hi.baidu.com/wjy9/home              通知浏览器自动刷新(单位为秒)

Content-Disposition: attachment; filename=aaa.zip      通知浏览器以下载的方式打开资源

Set-Cookie:SS=Q0=5Lb_nQ; path=/search       发cookie

Expires: -1                 禁止缓存的头字段

Cache-Control: no-cache     禁止缓存的头字段

Pragma: no-cache              禁止缓存的头字段(根据浏览器不同,使用不同方式,可全写)

Connection: close/Keep-Alive                连接状态

Date: Tue, 11 Jul 2000 18:23:51 GMT   系统时间

时间: 2024-08-04 00:35:43

Java#HttpServletResponse的相关文章

java HttpServletRequest和HttpServletResponse詳解

這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 最近由於CAS相關的JAR包的重新封裝,所以想盡量做到0配置,而這個過程中大量使 用HttpServletRequest,現在整理如下,以便以後查閱.(表格為從別的地方復制的,排版渣瞭點,酬和看吧.) 請求與響應相關的類和接口非常多,下表是主要的與請求和接口相關的類以及接口. 主要的與請求和接口相關的類及接口 方法 說明 ServletInputStrea

[原创]java WEB学习笔记08:ServletResponse & HttpServletResponse

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

java学习笔记—HttpServletResponse(21)

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { // 获取字节流对象 ServletOutputStream out = response.getOutputStream(); // 获取字符流对象 PrintWriter writer = response.getWriter(); out.write("image&

java web 学习八(HttpServletResponse对象2)

一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类, 生成随机图片范例: package gacl.response.study; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOExceptio

java学习笔记—HttpServletResponse(23)

获取客户端信息 1 编写ClientServlet.java public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); response.se

Java Web -- Servlet(11) HttpServletResponse详解(重定向)

当Web服务器收到客户端的http请求,(在程序继承HttpServlet的前提下)容器在调用Servlet的doGet()或doPost()方法时,会针对每一次请求创建一个HttpServletRequest接口的实例和一个HttpServletResponse接口的实例,封装成参数传给doGet()或doPost()方法. request和response分别代表客户端对Web服务器的请求 和 服务器对客户端的响应. HttpServlet的继承结构如下: ServletResponse的常

Java web基础总结五之—— HttpServletRequest与HttpServletResponse

Java web基础总结五之-- HttpServletRequest与HttpServletResponse 在前面总结过,每当客户端给Web服务器发送一个http请求,web服务器就会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象就代表请求和响应,所以我们可以通过request对象获得请求相关的数据和操作.通过response对象进行对响应相关的数据封装和一些其他的操作. 一.HttpServletRequ

JAVA基础之HttpServletResponse响应

用户在客户端输入网址(虚拟路径)时,开始发送一个HTTP请求(请求行.请求头.请求体)至服务器.服务器内的Tomcat引擎会解析请求的地址,去找XML文件,然后根据虚拟路径找Servlet的真实路径,真实的Servlet会将请求的信息封装成request(请求)对象,然后再创建一个response(响应)对象,(此时的response内是空的)同时创建servlet对象,并调用service方法(或doGet和doPost方法).这样就是把两个对象传给了服务器内的某个servlet的servic

java web给手机端写接口HttpServletRequest ,HttpServletResponse

前言: 作为一名android开发人员,网络数据都是web开发人员提供,每次让他们写一个接口都跟求神拜佛一样,与其求别人还不如自己动手,这是八百年前写的word,今天把它记在csdn,防止以后忘记还可以看看. 1.接口的数据源来自于数据库.(这里没办法提供方法教你怎么查数据,自己去网站上学吧,我觉得挺不错的) http://www.w3school.com.cn/sql/sql_wildcards.asp 2.我所写接口的框架是structs+spring+ibatis,要会接口首先要学会这三个