getInputStream方法getParameter与getReader方法的区别

来源:互联网 发布:国密算法sm2 java 编辑:程序博客网 时间:2024/05/16 05:29

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
原创粉丝点击