Response应答对象:

来源:互联网 发布:做淘宝客服对眼睛好吗 编辑:程序博客网 时间:2024/06/03 16:56
 

应答对象

(1)    状态行HTTP/1.1 200 OK

Response.setStatus(HttpServletResponse.SC_OK);  设置状态码

(2)    响应消息的消息头

Content-Type

response.setContentType(“text/html”);

Refresh:刷新

Response.setHeader(“Refresh”,”2”;URL=page.html”);

浏览器对相应页面不缓存

response.setDateHeader("Expires",0);

response.setHeader("Cache-Control","no-cache"); 

response.setHeader("Pragma","no-cache"); 

 

(3)    消息实体内容

通过输出流对象进行设置

Response.getOutputStream() 字节输出流对象

Response.getWriter()  字符输出流对象

浏览器

Java程序:中文字符——unicode

Char ch=’中’; 存放的是unicode编码  两个字节

字符的输出流对象out.println();按照某种字符集编码的方式转换成对应字节数组

浏览器:字节数组——转换成字符

getOutputStream与getWriter方法

1、    getOutputStream方法用于返回Servlet引擎创建的字节输出流对象,Servlet程序可以按字节形式输出响应正文。

2、  getWriter方法用于返回Servlet引擎创建的字符输出流对象,Servlet程序可以按字符形式输出响应正文。

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

4、  getOutputStream方法返回的字节输出流对象的类型为ServletOutputStream,它可以直接输出字节数组中的二进制数据。

5、  getWriter方法将Servlet引擎的数据缓冲区包装成PrintWriter类型的字符输出流对象后返回,PrintWriter对象可以直接输出字符文本内容。

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

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

8、  如何实现动态文件内容的下载

1、   需要通过HttpServletResponse.setContentType方法设置Content-Type头字段的值为浏览器无法使用某种方式或激活某个程序来处理的MIME类型,例如,“application/octet-stream”或“application/x-msdownload”等。

2、  需要通过HttpServletResponse.setHeader方法设置Content-Disposition头的值为“attachment; filename =文件名”。

3、  应该调用HttpServletResponse.getOutputStream方法返回的ServletOutputStream对象来向客户端写入附件文件内容,而不应使用HttpServletResponse.getWriter方法返回的PrintWriter对象。

选择getOutputStream和getWriter方法的要点

1、    PrintWriter对象输出字符文本内容时,它内部还是将字符串转换成了某种字符集编码的字节数组后再进行输出,使用PrintWriter对象的好处就是不用编程人员自己来完成字符串到字节数组的转换。

2、  使用ServletOutputStream对象也能输出内容全为文本字符的网页文档,但是,如果网页文档内容是在Servlet程序内部使用文本字符串动态拼凑和创建出来的,则需要先将字符文本转换成字节数组后输出。

如果一个网页文档内容全部为字符文本,但是这些内容可以直接从一个字节输入流中读取出来,然后再原封不动地输出到客户端,那么就应该使用ServletOutputStream对象直接进行输出,而不要使用PrintWriter对象进行输出。 

 

 

会话与状态管理

       会话与会话状态简介

1、  在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。

2、  Web应用中的会话是指一个客户端浏览器与web服务器之间连续发生的一系列请求和响应过程

3、  Web应用的会话状态是指web服务器与浏览器再回话过程中产生的状态信息,借助会话状态,web服务器能过把属于同一会话中的一系列请求和响应过程关联起来

举例: 第一次访问web服务器登录的操作输入账号:xx密码:1234——>servlet验证一下是否是合法用户

购物:某个商品加入购物车——>xxx  mp4

                                          ——>

结账:——>xxx  mp4、、、

 

第一次访问——>web服务器,产生一个cookie 封装在响应消息中Set-Cookie:——>发回客户端浏览器。Cookie信息保存在客户端的计算机上

以后客户端浏览器再向web服务器提交请求cookie

      

原创粉丝点击