getInputStream方法getParameter与getReader方法的区别

HttpServletRequest得到客户端传来信息的方法,getInputStream() getReader() getParameter(),这三个方法都是从request对象中取得的数据。

1、getInputStream方法返回一个代表实体内容的输入流对象。

2、getReader方法返回一个代表实体内容的BufferedReader对象,实体内容的字节数据按照请求消息中指定的字符集编码转换成文本字符串。可以用setCharacterEncoding方法指定字符集编码。

3、getParameter 方法进行url解码时采用的字符集编码在Servlet规范中没有明确规定采用ISO8859-1因此,无法返回正确的中文参数信息。二进制数据流采用"multipart/form-data",在这种情况下getParameter是得不到数据的。

二、适用范围。

1.当请求消息中的实体内容全部是文本数据,并且Servlet程序也需要以文本方式处理时,适用于getReader方法。如果不处理只是存储到服务器文件系统或者数据库中,应该使用getInputStream。

2.处理文件上传,只能用getInputStream返回的ServletInputStream字节流对象读取实体内容,因为他读取的数据是每个字节的原始内容,而从BufferedReader流对象中读取的数据是原始内容按某种编码转换成的字符文本。

三、注意事项

1.三种方式是冲突的,只能读取一次。混合使用会抛异常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值