jettytomcat对待表单过长问题

为什么80%的码农都做不了架构师?>>>   hot3.png

结论两句话:

 

tomcat知道自己处理不了了,什么也不干过去了

jett知道自己处理不了了,抛个IllegalStateException出来通知一下

jetty默认允许的content-length=200×1000

org.eclipse.jetty.server.Request
public void extractParameters(){if (_baseParameters == null) _baseParameters = new MultiMap(16);if (_paramsExtracted) {if (_parameters==null)_parameters=_baseParameters;return;}_paramsExtracted = true;
....// handle any _content.String encoding = getCharacterEncoding();String content_type = getContentType();if (content_type != null && content_type.length() > 0){content_type = HttpFields.valueParameters(content_type, null);if (MimeTypes.FORM_ENCODED.equalsIgnoreCase(content_type) &&(HttpMethods.POST.equals(getMethod()) || HttpMethods.PUT.equals(getMethod()))){int content_length = getContentLength();if (content_length != 0){try{int maxFormContentSize=-1;if (_context!=null)maxFormContentSize=_context.getContextHandler().getMaxFormContentSize();else{Integer size = (Integer)_connection.getConnector().getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormContentSize");if (size!=null)maxFormContentSize =size.intValue();}if (content_length>maxFormContentSize && maxFormContentSize > 0){throw new IllegalStateException("Form too large"+content_length+">"+maxFormContentSize);}InputStream in = getInputStream();// Add form params to query paramsUrlEncoded.decodeTo(in, _baseParameters, encoding,content_length<0?maxFormContentSize:-1);}catch (IOException e){if (Log.isDebugEnabled())Log.warn(e);elseLog.warn(e.toString());}}}}
....}   }

 

jetty修改content-length方法

 

<Configure id="Server" class="org.eclipse.jetty.server.Server">
...
<Call name="setAttribute"><Arg>org.eclipse.jetty.server.Request.maxFormContentSize</Arg><Arg><SystemProperty name="org.eclipse.jetty.server.Request.maxFormContentSize" default="200000"/></Arg></Call>
...
</Configure>

启动方式

 

java -jar start.jar -Dorg.eclipse.jetty.server.Request.maxFormContentSize=600000

还有另外一种配置方式

 

<Call class="java.lang.System" name="setProperty"><Arg>org.eclipse.jetty.server.Request.maxFormContentSize</Arg><Arg>400000</Arg>
</Call>
 

tomcat默认允许的content-length=2×1024×1024

org.apache.catalina.connector.Request
protected void parseParameters() {
......if (!("application/x-www-form-urlencoded".equals(contentType)))return;int len = getContentLength(); if (len > 0) {int maxPostSize = connector.getMaxPostSize();   // tomcat默认大小2*1024*1024  if ((maxPostSize > 0) && (len > maxPostSize)) {if (context.getLogger().isDebugEnabled()) {context.getLogger().debug(sm.getString("coyoteRequest.postTooLarge"));}return;   // 内容超长则直接返回,jetty会抛出IllegalStateException//Parameters 对象没有内容}
.....
}public Map<String, String[]> getParameterMap() {if (parameterMap.isLocked())return parameterMap;Enumeration<String> enumeration = getParameterNames();while (enumeration.hasMoreElements()) {String name = enumeration.nextElement();String[] values = getParameterValues(name);parameterMap.put(name, values);}parameterMap.setLocked(true);return parameterMap;
}public Enumeration<String> getParameterNames() {if (!parametersParsed)parseParameters();return coyoteRequest.getParameters().getParameterNames();
}

转载于:https://my.oschina.net/boltwu/blog/533742

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之Adapter用法总结

Android之Adapter用法总结 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: Android中所有的Adapter一览: …

那些年,画家发明的黑科技

全世界只有3.14 % 的人关注了爆炸吧知识在现代摄影技术发明之前&#xff0c;获取图像的最佳方式只有绘画。在绘画的时代&#xff0c;如何把事物画的逼真&#xff0c;几乎成为了困扰画家一生的问题。为了准确展现客观世界&#xff0c;让画面看起来更加逼真&#xff0c;古代的艺术…

shared_ptrT make_shared( Args ... args );

shared_ptr很好地消除了显式的delete调用&#xff0c;如果读者掌握了它的用法&#xff0c;可以肯定delete将会在你的编程字典中彻底消失。但这还不够&#xff0c;因为shared_ptr的构造还需要new调用&#xff0c;这导致了代码中的某种不对称性。虽然shared_ptr很好地包装了new表…

Android jdwp 自动断开,开启debug调试模式,进入不了,等一会就闪退了!!!!

原因&#xff1a;debug标记加多了art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() ! GetDebugThread() (Thread::Current()0xe1908400, GetDebugThread()0xe1908400) Expected event thread11-16 15:29:18.457 10331-10339/包名 A/art: art/runtime/runt…

Visual Studio 2022发布了,我最爱的5大特性

VS2022今天Visual Studio 2022 终于发布了&#xff0c;你只需要按下⾯地址就可以快速安装你所需要的Visual Studio 2022版本&#xff0c;包括了企业版本&#xff0c;专业版本&#xff0c;以及社区版本。请输入以下⽹址安装最新的Visual Studio 2022 https://aka.ms/InstallVS或…

ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发

为什么80%的码农都做不了架构师&#xff1f;>>> ASP.NET3.5 企业级项目开发 &#xff0d;&#xff0d; 第二章 数据访问层(DAL)的开发 前言&#xff1a;本篇主要讲述数据访问层的开发&#xff0c;而且为了大家交流&#xff0c;已经创建企业项目开发团队&…

Android之URI简介

就Android平台而言&#xff0c;URI主要分三个部分&#xff1a;scheme, authority and path。其中authority又分为host和port。格式如下&#xff1a; scheme://host:port/path 举个实际的例子&#xff1a; content://com.example.project:200/folder/subfolder/etc \---------/ …

虚拟机安装和使用

软件更新快&#xff0c;所以我也不知道什么时候这些密钥啊就失效了&#xff0c;最新应用的安装时间&#xff1a;15年 虚拟机软件不少&#xff0c;其中应用最广发的一个就是VMware Workstation&#xff0c;以后用了别的虚拟机&#xff0c;安装教程再加~ VMware Workstation http…

十个jQuery的幻灯片图片轮播切换插件[转]

1、Simple Controls Gallery 是基于jQuery的一个幻灯插件&#xff0c;非常不错&#xff0c;详细演示及下载请点击下面的链接http://www.dynamicdrive.com/dynamicindex4/simplegallery.htm 2、jQuery Cycle Plugin 同样是jQuery的插件&#xff0c;支持非常多的样式&#xff0c;…

22张图片倒叙霍金:我爱宇宙也爱这苦乐人生

全世界只有3.14 % 的人关注了爆炸吧知识▲斯蒂芬威廉霍金&#xff08;Stephen William Hawking&#xff09;&#xff0c;1942年1月8日出生于英国牛津&#xff0c;21岁时患上肌肉萎缩性侧索硬化症&#xff08;卢伽雷氏症&#xff09;&#xff0c;全身瘫痪&#xff0c;不能言语&a…

鸿蒙思维和小央美,北市场附近艺术培训

最佳答案&#xff1a;北市场附近有叮当少儿美术空间,弈趣围棋培训中心,舞王回一街舞俱乐部,童心童画美术馆,小央美儿童美术,纸飞机少儿美术,星海艺术培训,鸿蒙教育思维绘画,小画虫少儿美术培训中心,红点美术培训中心,风之舞打击乐培训中心,红英艺术中心,墨涛书法教育,格林童画,…

简述LINQ的发展历程

LINQ&#xff1a;最终统治了所有的语言&#xff01;让我们看看LINQ如何彻底改变了.NET中访问数据的方式.NET与其他技术栈的不同之处之一绝对是LINQ&#xff0c;它是Language Integrated Query的首字母缩写。实际上&#xff0c;它是随.NET Framework 3.5和Visual Studio 2008引入…

关于异或的一些东西和应用

异或是一种基于二进制的位运算&#xff0c;用符号XOR或者 ^ 表示&#xff0c;其运算法则是对运算符两侧数的每一个二进制位&#xff0c;同值取0&#xff0c;异值取1。它与布尔运算的区别在于&#xff0c;当运算符两侧均为1时&#xff0c;布尔运算的结果为1&#xff0c;异或运算…

Android之自定义ContentProvider详解

第一个版本 对android中MIME类型的理解 初始MIME类型&#xff0c;是在学习ContentProvider的时候。 当在创建自己的ContentProvider的时&#xff0c;需要从抽象类ContentProvider中派生出自己的子类&#xff0c;并实现其中5个抽象方法&#xff1a; query(Uri, String[], Strin…

dwr 写的小程序,配置

第一、在web.xml里面有如下配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?><web-app xmlns"http://java.sun.com/xml/ns/j2ee" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"h…

PHP开发学习-Apache+PHP+MySQL环境搭建

我现在开始php的学习之旅啦&#xff01; 入门&#xff1a;开发环境搭建 组件版本&#xff1a; apache2.2.22 下载地址&#xff1a;http://httpd.apache.org/ php5.4.11 下载地址&#xff1a;http://windows.php.net/download/ mysql5.5.29 下载地址&#xff1a;http://www.mys…

如何不露声色地知道别人是不是单身?

1 世界上竟然会有这么香的东西&#xff01;&#xff01;&#xff01;2 全网吧的电脑都死机了&#xff0c;唯独写论文的电脑没死机&#xff01;3 哈哈哈哈哈哈哈哈哈哈哈好拉风啊&#xff01;&#xff01;4 中国好邻居5 《秋游》&#xff0c;五年级男生写的诗图自我们1班王悦微6…

Android 防火墙 知乎,知乎回应:防火墙太“坑爹” 正检查用户隐私是否有泄露...

9月7日消息&#xff0c;知乎今日下午系统瘫痪无法登陆&#xff0c;各个页面变为一片空白&#xff0c;并且还出现了知乎账号“串号”现象&#xff0c;当时有消息称是服务器原因。其后知乎发布公告&#xff0c;声称由第三方防火墙故障引起客户端临时下线&#xff0c;并引起数据展…

再谈C#中的委托和事件

写在最前我相信全网关于委托和事件的文章和概述&#xff0c;大家应该已经读过很多篇。但是就我的观察来看&#xff0c;大多数文在讲述这方面概念时&#xff0c;都会用烧开水和狗叫主人的例子来讲述事件怎么工作&#xff0c;这样比喻固然与生活联系紧密&#xff0c;但看多了难免…

MIT Scheme 使用 Edwin

MIT Scheme 的基本使用&#xff1a;http://www.math.pku.edu.cn/teachers/qiuzy/progtech/scheme/mit_scheme.htm 安装过程 安装brew XQuartz 转载于:https://www.cnblogs.com/IDRI/p/4989171.html