教你快速上手HttpServletResponse
教你快速上手HttpServletResponse
一、基础知识
1、简介
(1)Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
(2)request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了;要向客户机输出数据,只需要找response对象就行了。
2、状态
(1)HttpServletResponse对象封装了向客户端发送数据、发送响应头、发送状态码的方法
(2)getStatus(int sc)—Sets the status code for this response
getHeader(java.lang.String name,java.lang.String value)
— Sets a response header with the given name and value
getWriter() — Returns a PrintWriter object that can send character text to the client
getOutputStream() — Returns a ServletOutputStream suitable for writing binary data
3、常见应用
(1)302+location实现重定向
(2)使用Refresh实现定时跳转
(3)使用content-Type实现向浏览器输出图片
(4)文件下载功能
二、常见应用
1、302+location实现重定向
(1)通过response实现请求重定向,请求重定向指:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向。
(2)实现方式
response.sendRedirect()
(3)实现原理
302状态码和location头即可实现重定向
2、细节
(1)getOutputStream和getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOuputStream、Printwriter对象,getOutputStream和getWriter这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另一方法。
(2)Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
(3)Serlvet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象。