首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpServletRequest getParameter和getReader

HttpServletRequest getParameter和getReader
EN

Stack Overflow用户
提问于 2011-05-03 15:47:00
回答 2查看 5.7K关注 0票数 3

我正在开发一个HttpServlet,它处理来自应用程序的POST请求,其中包括查询字符串上的参数,以及正文中的JSON对象。它不是一个表单post,整个主体是JSON对象。我知道我需要用HttpServletRequest.getReader()来阅读身体。但是,我还需要使用HttpServletRequest.getParameter()来获取查询参数。而且我知道两者都不能使用。

我认为,我们的解决方案是创建一个HttpServletRequestWrapper,并以允许多次调用它的方式覆盖getReader()。但我不知道该怎么做。或者这不是我们想要的方法。我可以找到的所有HttpServletRequestWrapper示例似乎都与创建过滤器和修改请求的内容有关。

任何帮助都是非常感谢的。

顺便说一句,这是在上托管的,但我不认为这会影响解决方案。

EN

回答 2

Stack Overflow用户

发布于 2011-05-03 16:25:07

我认为您可以在您的getReader()中实现多个可调用的HttpServletRequestWrapper

  1. 将HTTP请求主体保存到临时文件中。当调用HttpServletRequestWrapper.getReader()时,打开临时文件。
  2. 在请求处理结束时删除临时文件。

要实现(1)和(3),ServletFilter可能是有用的。

票数 1
EN

Stack Overflow用户

发布于 2011-06-28 09:40:51

我建议通过解析查询字符串直接读取查询字符串参数。这样,您就不会接触消息体,并且可以使用HttpServletRequest.getReader()

解析查询字符串很棘手,但可以使用Apache客户端包中的URLEncodedUtils安全地完成,如下所述:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5872109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档