java response 输出_HttpServletResponse详解

首页 > Java Web > SpringMvc应用 > HttpServletResponse

HttpServletResponse详解

Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,从客户端取数据找HttpServletRequest,向客户端发送数据就是HttpServletResponse,HttpServletResponse对象可以向客户端发送三种类型的数据:a.响应头b.状态码c.数据.

数据

HttpServletResponse对象向客户端发送数据格式如下:

HTTP/1.1 200 OK

Server: Microsoft-IIS/4.0

Date: Mon, 5 Jan 2004 13:13:33 GMT

Content-Type: text/html

Last-Modified: Mon, 5 Jan 2004 13:13:12 GMT

Content-Length: 112

HTTP Response Example....

常用方法

addHeader(String name,String value) //将指定的名字和值加入到响应的头信息中

encodeURL(String url) //编码指定的URL

sendError(int sc) //使用指定状态码发送一个错误到客户端

setDateHeader(String name,long date //将给出的名字和日期设置响应的头部

setHeader(String name,String value) //将给出的名字和值设置响应的头部 eg:response.setHeader(“Refresh”,”2;url=”http://www.baidu.com”); 页面的刷新

setStatus(int sc) //给当前响应设置状态码

getOutputStream() //字节输出流对象

getWriter() //字符的输出流对象

sendRedirect () //对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。

setContentType(String ContentType) //设置响应的MIME类型 ,页面的设置文本类型,获取或设置输出流的 HTTP MIME 类型。

setCharacterEncoding(String charset) //告知服务器用什么方式编码解析

响应状态码

HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:

状态码404对应的常量   SC_NOT_FOUND

状态码200对应的常量   SC_OK

状态码500对应的常量   SC_INTERNAL_SERVER_ERROR

用途

1、向客户端写入Cookie

2、重写URL

3、获取输出流对象,向客户端写入文本或者二进制数据

4、设置响应客户端浏览器的字符编码类型

5、设置客户端浏览器的MIME类型。

细节总结

1. getOutputStream和getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOuputStream、Printwriter对象。

2. getOutputStream和getWriter这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另一方法。

3. Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。

4. Serlvet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象。

5. HttpServletResponse输出中文的时候,注意服务端,客户端2边的编码一定要相同,不如就会出现乱码。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值