HttpServletRequest的getInputStream方法与getReader方法的区别

 

通过前面的学习,知道HttpServletRequest的作用是接受客户端传递的数据,今天跟张老师学习了HttpServletRequest的getInputStream方法与getReader方法以及他们的区别,根据不同情况选择对他们的使用,在张老师的Java基础视频中的学习中就知道了字符集编码的重要性,这次还有重定向时getWriter()方法对网页字符集编码的影响,下面是今天学习的总结。

HttpServletRequest的getInputStream方法与getReader方法
1.getInputStream方法返回一个代表实体内容的输入流对象,类型为javax.servlet.ServletInputStream,可以读取HTTP请求消息中的实体内容。如果实体内容中包含二进制数据,那么就只能使用此方法返回的输入流对象来读取。
2getReader方法用于返回一个代表实体内容的BufferReader对象,返回的BufferReader对象将实体内容中的字节数据按照请求消息中指定的字符集编码转换成文本字符串。
3,当请求消息中的实体内容全部是文本数据,并且在Servlet程序中也需要以文本方式来处理这些内容时,适于使用getReader方法。如果Servlet程序不对他们进行处理,而只是存储到服务器的文件系统或数据库中,这适于使用 
getInputStream方法。
4对于要处理文件上传的Servlet程序来说,只能调用getInputStream方法返回的ServletInputStream字节流对象去读取实体内容,而不能调用getReader方法。因为从ServletInputStream流对象中读取的数据是每个字节的原始内容,而从BufferedReader流对象中读取的数据是原始的内容按某种编码转换成的字符文本。

重定向时getWriter()方法对网页字符集编码的影响
   1.调用者程序中没有使用PrintWriter out=response.getWriter();语句,被调用者程序中设置的字符集编码将覆盖调用者程序中设置的字符集编码。
    2.调用者程序中使用类了PrintWriter out=response.getWriter();语句,被调用者程序中设置的字符集编码将不再起作用。因为只有在第一次调用当前HttpServletResponse对象的getWriter方法之前,调用那些设置字符集编码的方法(即调用者程序使用的setContentType()方法),才会对PrintWriter对象起作用,而在getWriter方法之后调用将对PrintWriter对象无效

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值