HTTP请求(POST)字段大小限制&Request.BinaryRead JSP中
题
首先我的Java超出生锈的,我从来没有做过JSP或servlet的,但我想帮助别人解决问题。
由JavaScript呈现的形式被回发到JSP。 一些这种形式的字段是大小超过100KB。 然而,当正在对JSP侧检索到的表单字段的字段的值被截断为100KB。
现在我知道有在ASP的Request.Form类似的问题可围绕通过使用Request.BinaryRead来得到。 有没有在Java中的等价物?
或可替换地是有在WebSphere /阿帕奇/ IBM HTTP服务器围绕同样的问题得到了设置?
解决方案 2
我们已经解决了这个问题。 无关,与Web服务器的设置,因为它原来并没有什么在邮寄中被截断。
之前所发布的信息的表单字段中被分为由JavaScript 102399个字节大小的块和每个块加入到表单字段作为一个值,以便将其用值数组结束了。 的Request.Form()似乎自动串联这些值来重现巨单串但Java的getParameter()不会。 使用getParameterValues()和重建串从返回的值不过确实起作用。
其他提示
由于张贴请求必须保持在内存中由servlet容器,以提供由所述的ServletRequest API所需要的功能,最servlet容器具有可配置大小限制,以防止拒绝服务攻击,因为否则伪造客户机的少数可能引发服务器耗尽内存。
这是一个有点怪如果使用WebSphere默默地截断的请求,而不是失败的正确的,但如果这是你的问题的原因,你可能会发现配置选项的这里的WebSphere文档<在/一>
可以使用的getInputStream (原始字节)或 getReader (解码的字符数据),以从请求中读取数据。注意如何交互与读取参数。如果你不希望使用servlet,看看使用的过滤以涡卷的请求。
我期望的WebSphere拒绝而不是任意地截断数据的请求。我怀疑的错误别处。