【问题标题】:Java servlet getParameter in post-request truncated后请求中的 Java servlet getParameter 被截断
【发布时间】:2015-06-11 06:27:56
【问题描述】:

我们有一个 servlet 并向其发送 post-message。在networktraffic中,我们可以看到参数是完整的。在 java servlet 中调用 request.getParameter(paramname) 函数时,我们得到的值在特殊数量的字符后被截断,而不是特定字符。因此,当向“somewordthatislong”添加一些字符时,参数在日期内被截断的位置向左移动。

有人知道为什么会这样吗?

来自网络的参数发布消息

q=somewordthatislong+AND+document_meta_documentarchive_publicationsdatum_manipulated%3A%5B2014%2F01%2F01+TO+2015%2F12%2F31%5D

调用request.getParameter(paramname)函数

q=somewordthatislong
    +AND+document_meta_documentarchive_publicationsdatum_manipulated%3A%5B2014%2F01%2F01+TO+2

参数的 URL 解码值为

q=somewordthatislong AND document_meta_documentarchive_publicationsdatum_manipulated:[2014/01/01 TO 2015/12/31]

【问题讨论】:

  • 你在哪里从网络捕获参数:在客户端还是服务器端?
  • 这是浏览器网络标签显示的内容。
  • 你的意思是“多长时间”?在 tomcat 中有一个“maxPostSize”配置(在连接器中),但通常它非常大。我会检查是否有人根据您的尺寸调整了此配置。或者您的帖子是否因其他一些领域而很大。
  • 这是我所期望的。在服务器的机器上运行 wireshark 并尝试捕获网络。我猜你会在那里看到截断的版本。

标签: java servlets request


【解决方案1】:

进一步的分析表明,有一个扩展 HTTPRequest 和 getParameter 的类,它在 ~100 个字符后削减 q。抱歉,由于依赖注入,我看不到这些家伙。

认为这是一个标准的 HTTPRequest。感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多