`
357029540
  • 浏览: 735936 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

TOMCAT在POST方法提交参数丢失问题

阅读更多
摘自http://my.oschina.net/luckyi/blog/213209
昨天在解决一个BUG时发现一个奇怪的问题,一个AJAX提交数据在之前都是木有问题的,突然提交出错影响其他处理流程。

检查时发现页面处理数据较多,起初以为是提交顺序不正确修改后发现不是由此问题引起。于是删除掉一部分数据进行提交,较少数据能够提交成功。

恢复较多数据后跟踪提交FORM DATA ,发现数据是存在的,同时后台也未报其他错误。

随后设置Tomcat中POST方式提交数据大小:
maxPostSize="0"
修改后提交数据依然会出错,但给出了错误提示:
信息: More than the maximum number of request parameters (GET plus POST) for a single request ([10,000]) were detected. Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector.

Note: further occurrences of this error will be logged at DEBUG level.

按照错误提示在在Connector 节点中加入maxParameterCount="-1",再进行测试便成功了。
<Connector executor="tomcatThreadPool"

               port="9080"

               protocol="HTTP/1.1"

                maxParameterCount="-1"

               connectionTimeout="20000"

               acceptCount="75"

               disableUploadTimeout="true"

               enableLookups="false"

               URIEncoding="UTF-8" />


maxParameterCount:

The maximum number of parameters (GET plus POST) which will be automatically parsed by the container. 10000 by default. A value of less than 0 means no limit.
查询网上资料了解到引起该问题是
由于Java中的哈希表实现上的漏洞,现如今因为Tomcat使用了哈希表来存储HTTP请求参数,因此也受此问题影响。

为此Tomcat实现了一个变通的做法,提供一个新的选项maxParameterCount用来限制但请求中最大的参数数量,该参数默认值是10000,这对多数应用程序来说已经足够,这个值也足够用来绕过JRE中的哈希表的bug。

如果你正在使用早期的Tomcat版本(Apache Tomcat 5.x,Apache Tomcat 6.x,Apache Tomcat 7.x),没有maxParameterCount属性,那么可以通过限制maxPostSize到10kb以下来解决这个问题。


也可以升级到5.5.35, 6.0.35或7.0.23及以上版本使用maxParameterCount属性进行处理。
分享到:
评论

相关推荐

    详解tomcat 解决 POST请求传参数过长受限制的问题

    POST请求本身并未限制传入参数大小,是tomcat 容器设置了接收参数大小的限制 解决过程: vim server.xml &lt;Connector port=8080 protocol=HTTP/1.1 connectionTimeout=2000 redirectPort=8443 URIEncoding=UTF...

    Tomcat中Get和Post出现乱码的解决办法

    在 JSP 程序中,当我们使用 GET 或 POST 方法提交中文信息时,可能会出现乱码问题。这是因为 Tomcat 对于 GET 和 POST 方法的编码处理方式不同。对于 POST 方法,Tomcat 会使用 request.setCharacterEncoding 方法...

    大数据post提交数据丢失,问题.docx

    在IT行业中,尤其是在Java开发领域,我们经常遇到与“大数据post提交数据丢失”以及“Tomcat接收不到大数据”的问题。这些问题通常与服务器配置、数据传输机制、开发环境设置等相关。在此,我们将深入探讨这两个主要...

    Tomcat-启动参数设置

    然而,在高并发或大数据量处理的应用场景下,Tomcat可能会出现内存溢出等问题。为了提升Tomcat的稳定性和性能,合理地设置其启动参数变得尤为重要。 #### 二、内存参数设置 ##### 2.1 内存参数的作用 内存参数主要...

    通过spring boot 设置tomcat解决 post参数限制问题

    在本篇文章中,我们将介绍如何通过 Spring Boot 设置 Tomcat 解决 Post 参数限制问题。在实践中,我们经常会遇到 Post 请求参数大小限制的问题,导致上传文件或发送大量数据时出现问题。今天,我们将探讨如何解决这...

    Tomcat配置方法 Tomcat配置方法 Tomcat配置方法

    本文将深入探讨Tomcat的配置方法,帮助你更好地理解和管理你的Web应用。 首先,让我们从基础开始,了解Tomcat的目录结构。在解压Tomcat安装包后,你会看到几个主要的目录和文件: 1. **bin**:包含启动和停止...

    tomcat GET请求与POST请求

    在Web开发中,Tomcat作为一个流行的Java应用服务器,...在实现时,需要根据具体需求选择合适的方法,并注意相关的最佳实践和潜在问题。通过编写Servlet并利用Tomcat提供的功能,开发者可以灵活地处理各种HTTP请求类型。

    Tomcat设置服务启动参数

    本文将详细介绍如何在Tomcat中设置启动参数,并探讨这些参数的具体含义及其最佳实践。 #### 二、Tomcat启动参数概述 在Tomcat中,可以通过修改`bin`目录下的脚本文件来设置启动参数。对于Windows环境,主要通过...

    tomcat打补丁方法

    3. **浏览补丁列表**:在上述页面中,你可以找到针对不同版本的Tomcat所发布的安全补丁列表及其详细信息,包括发布日期、影响范围、解决的问题等。 4. **下载补丁文件**:点击具体的补丁名称或版本号链接,进入补丁...

    tomcat6.0 修改启动内存设置 java jvm参数配置

    本文将详细介绍如何在 Tomcat 6.0 中修改启动内存设置以及配置 Java 虚拟机 (JVM) 的相关参数。 #### 二、JVM 内存参数详解 在调整 Tomcat 的内存设置之前,我们需要了解一些基本的 JVM 内存参数: 1. **`-Xms`**...

    Tomcat 7 Windows中以Service方式启动配置启动参数

    在Windows环境中以Service方式启动Tomcat时,默认的JVM参数设置往往较低,这可能导致在运行大型应用程序时遇到内存不足的问题,例如常见的`java.lang.OutOfMemoryError: PermGen space`错误。为了避免这类问题的发生...

    彻底解决Tomcat的页面提交时的中文问题

    彻底解决Tomcat的页面提交时的中文问题

    tomcat7安装使用及jvm连接数参数调优

    Tomcat7 安装使用及 JVM 连接数参数调优 Tomcat7 是一个流行的 Java Web 服务器,主要用于部署和管理基于 Java 的 Web 应用程序。为了确保 Tomcat7 的稳定运行和高效性能,需要对其进行合理的安装、配置和优化。...

    Tomcat启动参数及监控参数配置

    在Java应用服务器的世界里,Apache Tomcat是一款广泛使用的开源Servlet容器。它负责解析并执行Java Servlets以及服务JSP(JavaServer Pages)。本篇文章将深入探讨Tomcat的启动参数配置和监控参数设置,以及如何利用...

    tomcat服务参数配置

    ### Tomcat服务参数配置详解 #### 一、Tomcat简介及安装 Tomcat是一款开源的Servlet容器,由Apache软件基金会下属的Jakarta项目开发。它实现了对Servlet和JavaServer Pages (JSP)技术的支持,并提供了作为Web...

    Tomcat PostGet 中文編碼處理方法

    本文将深入探讨如何在Tomcat环境下正确地处理POST与GET请求中的中文字符,帮助开发者更好地理解和解决相关问题。 #### 一、理解中文字符编码 在讨论具体的解决方案之前,首先需要了解几个基本概念: 1. **Unicode...

    struts2 使用action属性接收中文参数(post提交)

    这篇名为“Struts2 使用action属性接收中文参数(post提交)”的博文可能讲述了如何在Struts2框架中正确处理中文POST请求。在处理中文参数时,主要涉及以下几个关键知识点: 1. **字符编码设置**: - 请求编码:...

Global site tag (gtag.js) - Google Analytics