首先我的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拒绝而不是任意地截断数据的请求。我怀疑的错误别处。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top