从 servlet 读取 post 数据

Reading post data from servlet

我正在尝试通过以下方式从 servelet doPost 方法中读取 post 数据。

  1. 使用httpservletrequest.getInputStream();

  2. 正在创建 bytearrayoutputstream 的实例。

  3. 将 post 数据从 httpservletrequest.getInputStream() 写入 bytearrayoutputstream

  4. 最后,我从 bytearrayoutputstream.toByteArray() 得到的输出。

问题是,当我在文本字段中输入 150/10 时,toByteArray 给我 150%2F10toByteArray 似乎正在对 / 字符输出中的特殊字符进行编码。

从 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();

那么您就不必玩这些花哨的代码了。我想当你转换成字节数组时,你必须指定编码机制以避免字符集歧义。

我没有尝试上面的代码,但希望你试一试!