从 servlet 读取 post 数据
Reading post data from servlet
我正在尝试通过以下方式从 servelet doPost
方法中读取 post 数据。
使用httpservletrequest.getInputStream();
正在创建 bytearrayoutputstream
的实例。
将 post 数据从 httpservletrequest.getInputStream()
写入 bytearrayoutputstream
;
最后,我从 bytearrayoutputstream.toByteArray()
得到的输出。
问题是,当我在文本字段中输入 150/10
时,toByteArray
给我 150%2F10
。
toByteArray
似乎正在对 /
字符输出中的特殊字符进行编码。
从 servlet doPost()
方法读取 post 数据的优雅方式是什么?
在将数据传递给 servlet 之前,请尝试在客户端对其进行编码。或者当你检索它时,在 servlet 中,在那里做一个 Url 编码。
试试这个方法:
String abc = URLEncoder.encode("convert my string 150/10", "UTF-8");
byte[] barr = abc.getBytes(Charset.forName("UTF-8"));
在上面使用
request.getParameter();
那么您就不必玩这些花哨的代码了。我想当你转换成字节数组时,你必须指定编码机制以避免字符集歧义。
我没有尝试上面的代码,但希望你试一试!
我正在尝试通过以下方式从 servelet doPost
方法中读取 post 数据。
使用
httpservletrequest.getInputStream();
正在创建
bytearrayoutputstream
的实例。将 post 数据从
httpservletrequest.getInputStream()
写入bytearrayoutputstream
;最后,我从
bytearrayoutputstream.toByteArray()
得到的输出。
问题是,当我在文本字段中输入 150/10
时,toByteArray
给我 150%2F10
。
toByteArray
似乎正在对 /
字符输出中的特殊字符进行编码。
从 servlet doPost()
方法读取 post 数据的优雅方式是什么?
在将数据传递给 servlet 之前,请尝试在客户端对其进行编码。或者当你检索它时,在 servlet 中,在那里做一个 Url 编码。
试试这个方法:
String abc = URLEncoder.encode("convert my string 150/10", "UTF-8");
byte[] barr = abc.getBytes(Charset.forName("UTF-8"));
在上面使用
request.getParameter();
那么您就不必玩这些花哨的代码了。我想当你转换成字节数组时,你必须指定编码机制以避免字符集歧义。
我没有尝试上面的代码,但希望你试一试!