javax.servlet.HttpServletRequest.getContentLength() 在 EE6 中的行为是否正确?

标签 java servlets

我的问题重复 javax.servlet.HttpServletRequest.getContentLength() returns int only ,但是我感兴趣的是不同的。什么是正确的返回 javax.servlet.HttpServletRequest.getContentLength() 当内容长度大于 Integer.MAX_VALUE 时? 问题作者假设它是-1。然而 servlet 规范并未涵盖该主题。 http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getContentLength%28%29 当长度未知时,它显示为-1。这是不正确的,因为长度已知,根本不适合整数。 EE7 弥补了这一差距 http://docs.oracle.com/javaee/7/api/javax/servlet/ServletRequest.html#getContentLength%28%29 甚至引入了 getContentLengthLong()。 但是我的问题是,如果我实现 EE6 规范,在内容长度 > Integer.MAX_VALUE 的情况下什么是正确的行为?

最佳答案

您需要阅读 Java EE 7 version of ServletRequest.getContentLength() 的 JavaDoc .

它说得很清楚:

... or -1 if the length is not known or is greater than Integer.MAX_VALUE

请注意,如果您尝试读取较大的请求正文,那么它几乎肯定会被分块。当然,许多 HTTP 防火墙和代理都会对大型主体进行分块。

关于javax.servlet.HttpServletRequest.getContentLength() 在 EE6 中的行为是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132836/

相关文章:

java - HttpServletRequest#getHeader ("User-Agent") 返回空浏览器名称

java - 从资源类提供 swagger.json

java - 如何计算百分比

java - 如何获取 Spring Boot @Async 方法拒绝任务的详细信息?

java - 使用 spring boot 将 JSON 反序列化为具有通用对象列表的 POJO

java - Tomcat 连接上 AVD 中的奇怪 FileNotFoundException

jsf - Web.xml 中的 java.lang.Throwable 错误页面中显示的 ViewExpiredException

java - 接收 webElement 列表 - 转换错误

java - 路由器/经销商代理不传送消息

java - 为什么使用 Arrays.sort() 时不允许对原始数组进行自动装箱?