J2EE知识点-Response对象

Response对象

简介

一个完整的http响应包括响应行,若干响应头和响应数据主体三部分构成。

web服务器收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象和代表响应的response对象。

因此,要向客户机输出数据,只需要找response对象就行了

Response常见应用

1.缓存应用

2.向客户端输出中文数据:1)中文乱码问题 2)分别以OutputStream和PrintWriter输出

3.文件下载

4.定时刷新网页

5.请求重定向

缓存应用:setDateHeader方法

使用到"Expires"响应头

long expiresTime = System.currentTimeMillis()+1*24*60*60*1000;//将缓存截止时间设置为一天后
response.setDateHeader("expires",expiresTime)
中文乱码问题

使用HttpServletResponse响应对象的setHeader的方法,将"Content-type"这个响应头中设置编码方式。同时,sun公司也提供了更便捷的代码语句setContentType给编程人员使用。

response.setHeader("content-type","text/html;charset="UTF-8");
//response.setContentType("text/html;charset=UTF-8");//这句功能同上一句
getOutputStream()方法

如果我们用输出流直接输出数字的话,会是输出这个数字在编码表中代表的字符,如代码为:

response.getOutputStream().write(97);

在浏览器中得到:a。

注意:显示数字要按照字符串格式进行显示:”97“

getOutputStream和getWriter方法说明

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

2.getOutputStream和getWriter方法相互排斥,不能同时使用

请求重定向
response.sendRedirect("/myservlet/index.jsp");

一次请求重定向会向服务器发送两次请求。也就是说会产生两次response响应对象和request请求对象;同时浏览器的地址栏是会发生变化的,URL将跳转到重定向后的页面地址。这点与请求转发不同

sendRedirect方法不仅可以重定向到当前应用程序中的其他资源,它还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源

RequestDispatcher.forward方法只能在同一个web应用程序内资源之间转发请求

请求重定向的运行流程

1.浏览器根据用户的请求生成HTTP请求消息,并将其发送给web服务器。

2.如果请求资源为Servlet,web服务器检查内存中是否存在该servlet对象,如果不存在,则加载和创建该servlet对象。 

3.web服务器创建针对该次访问的request和response。request中包含了HTTP的请求信息,response用于封装将要发送的HTTP响应信息,此时响应对象中的内容为空。

 

4.web容器调用servlet1的service方法,并将请求对象和响应对象传递给该方法 

5.servlet对象的service方法从请求对象中读取请求信息,并将包含重定向的响应头信息写入到响应对象中

 

6.service方法执行完毕后返回

 

7.web服务器从响应对象中读取响应消息 

8.web服务器将包含重定向的响应信息发送给浏览器,一次请求响应过程完全结束,request和response变成垃圾,等待垃圾收集器将其彻底从内存中清除 

9.重复上述过程,直到一次请求响应过程完全结束 

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值