HttpServletResponse的getWriter()和getOutputStream()以及sendRedirect()方法

HttpServletResponse:
注明:
1.HttpServletResponse实例对象获得输出流有
两种方式:
①PrintWriter out=response.getWriter();
out对象用于输出字符流数据

②ServletOutputStream os=response.getOutputStream();
os用于输出字符流数据或者二进制的字节流数据都可以
首先我们来看一下浏览器和服务器端是如何来关闭我们的response获得的输出流的

这里写图片描述

所以只要有一个流被创建了,并且已经完成了流的输出那么servlet容器就会将response对象交给服务器
服务器将response对象中的内容做拆解响应给客户端。然后在检查该response的输出流有没有关闭,如果没有关闭
就将输出流关闭。当response再有另外一个流被创建并尝试做输出时就会发生异常。所以response的两个输出流只
能使用一个,不能同时使用两个输出流。这也是为我们没有关闭流程序不出错的原因,当然更提倡我们自己关闭流。
代码如下:

这里写图片描述

2.关于HttpServletResponse对象的sendRedirect(“url?参数名1=参数值&参数名2=参数值”)方法。
该方法称为重定向。浏览器和服务器是如何来完成重定向的呢?具体的步骤是这样的我们这里假设有三个页面
LoginServlet:登陆页面
LoginControlServlet:登陆验证处理类
ShowServlet:显示登陆成功页面
下图主要以http的形式来清楚的介绍了服务器和浏览器是如何来完成重定向的:

这里写图片描述

这里需要强调的是:重定向不可以在页面中共享HttpServletRequest对象中的数据。但是可以通过重定向的url中携带需要
的参数,但这里的参数只能携带字符串的参数。但是其优点是重定向时浏览器默认是使用get请求方式,这样的请求方式速度
更快一点。但是安全性却不高。

  • 15
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值