一、Response概述
response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象。response对象是用来对客户端进行响应的,这说明在HttpServletResponse的doXXX()方法中使用response对象可以完成对客户端的响应工作。
二、Response主要功能介绍
1、发送状态码;
2、设置响应头信息;
3、设置响应正文;
4、重定向;
三、HttpServletResponse的常用方法
(一)发送状态码
1 | setStatus(状态码) |
(二)设置响应头
1 | setHeader(String name, int value):设置响应头,只有一个值时 |
(三)设置响应正文
1 | ServletOutputStream getOutputStream():用来向客户端响应字节数据; |
(四)getWriter和getOutputStream细节
1、getWriter()和getOutputStream()两个方法不能同时调用。如同时调用就会出现异常
2、Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
3、Servlet的serice()方法结束后【也就是doPost()或者doGet()结束后】,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象.
4、response字符流缓冲区大小为8KB,当向字符流中写入数据后,数据可能只在缓冲区中,而没有发送到浏览器。
可以调用response.flushBuffer()或response.getWriter().flush()方法刷新缓冲区,把数据发送到浏览器。
(五)重定向
1 | //方法一: |
四、HttpServletResponse应用
1、使用Refresh头进行定时刷新
2、禁用浏览器缓存
1 | /** |
3、响应图片
1 | /** |
Java新手,若有错误,欢迎指正!