候选项:
Jetty + Apache FileUpload
JDK自带的HttpServer + 自行解析
Simple
Jetty + Jetty MultiPartFilter
备注:tomcat过于臃肿,不考虑。
测试情况:
两台机器,一台使用httpclient模拟客户端上传文件,一台作为http服务器。
两台机器均为8核、8G内存。
耗时:
以32..6M的文件测试
框架|性能|并发数
|
1
|
20
|
100
|
200
|
Jetty + Apache FileUpload
|
5.5s
|
13.7s
|
111s
|
207s
|
JDK自带的HttpServer
|
5.8s
|
78s
|
390
|
--
|
Simple
|
5.2s
|
24s
|
130s
|
330s
|
Jetty+ Jetty MultiPartFilter
|
5.5s
|
26s
|
112s
|
203s
|
单线程情况下, 性能均差不多,在多线程情况下JDK自带的HttpServer和Simple调度能力不足。
Cpu占用率
框架
|
200个并发时Cpu占用率
|
Jetty + Apache FileUpload
|
130%
|
JDKServer
|
350%
|
Simple
|
120%
|
Jetty+ Jetty MultiPartFilter
|
130%
|
客户端:8核全负载,HttpClient太耗资源了。
服务器端:JDKServer比较耗资源,其他的都稳定在130%左右
功能拓展性:
拓展性主要考虑:
HttpServer接受到上传请求时的一些处理。比如:当请求到Server时,如果合法则获取输入流进行上传;如果不合法,则直接返回处理结果。
Simple : 文件全部上传到临时文件夹后才能进行业务处理。极度不符合
MultiPartFilter: 使用过滤器处理缺点有二:一是业务逻辑不集中,部分在于Servlet中,部分在于过滤器中;二是改写MultiPartFilter并进行封装的难度稍大。
JDK自带Server: 符合条件。但需要自己解析http输入流,并进行封装。难度较大。
Apache FileUpload:符合条件,对Http请求的封装很棒。
Apache FileUpload > JDKServer > MultiPartFilter> Simple
最终选择:Jetty + Apache FileUpload
分享到:
相关推荐
综上所述,这个SSM框架实现的多文件上传项目提供了一个完整的开发模板,对于初学者来说,可以快速理解SSM框架的工作原理,并学习如何实现文件上传这一实用功能。同时,对于有一定经验的开发者,这个项目也是一个有...
这个项目专注于在SSH框架下实现单文件和多文件上传的功能,非常适合初学者进行实践和学习。文件上传是Web应用中常见的功能,用于让用户提交图片、文档等数据到服务器。 **Spring框架**: Spring是整个SSH架构的核心...
在Android应用开发中,文件上传和文件选择器是常见的功能需求。用户可能需要从设备存储中选择一个或多个文件,例如图片、文档或音频文件,然后上传到服务器或进行其他操作。本文将深入探讨如何在Android平台上实现...
1. **文件上传**:用户登录后,可以使用系统提供的上传功能选择本地的文件,Struts框架通过Servlet API中的Part接口处理文件流,将文件从客户端传输到服务器的指定目录。此过程需要对文件大小、类型进行限制,以防止...
这个框架在处理文件上传功能时,提供了高效且灵活的解决方案。本篇文章将详细探讨在SSM框架下如何实现文件上传,并结合运行环境要求——Tomcat 7及以上版本,讲解相关技术要点。 首先,我们需要了解SpringMVC中的...
SSH框架整合是一个常见的Java Web开发技术栈,由Spring、Struts2和...通过深入学习和实践这个项目,开发者不仅可以掌握SSH框架的整合技巧,还能了解到邮件服务、Excel处理以及文件上传下载等实用功能的实现方式。
在"ssm框架--spring mvc实现文件上传"这个项目中,我们将重点探讨如何在Spring MVC中实现实现文件上传的功能。 文件上传是Web应用中的常见需求,Spring MVC提供了便捷的API来处理这一任务。首先,你需要在表单中...
在这个“Struts框架文件上传下载案例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于Web应用来说是非常常见的需求。 文件上传功能是Web应用中允许用户从本地计算机选择文件并将其传输到...
以上是关于"asp.net mvc+Bootstrap Fileinput框架实现的文件上传"的相关知识点,这个示例提供了在ASP.NET MVC环境中集成Bootstrap Fileinput进行文件上传的完整流程,对于开发者来说具有很好的参考价值。通过学习和...
这里我们主要讨论的是两个用于文件上传的框架:Common-FileUpload和COS。 1. **Common-FileUpload**: 这是Apache Jakarta的一个子项目,提供了Java Web应用程序处理文件上传的功能。它弥补了Servlet API在处理多...
文件上传是Web应用中常见的功能之一,Gin框架提供了方便的方法来处理文件上传。本篇文章将深入探讨如何在Gin中实现文件上传,并结合curl命令演示上传过程。 首先,我们需要在Gin路由中定义一个处理文件上传的处理器...
在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Class)框架下实现HTTP或HTTPS上传文件,包括文件选择和服务器地址配置的用户界面。MFC是微软提供的一个C++类库,用于构建Windows应用程序,它封装了...
SpringMVC是Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求,包括文件上传。 在SpringMVC中实现多文件上传,首先我们需要配置`DispatcherServlet`,这是SpringMVC的核心组件,它负责接收HTTP请求并转发到...
本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会涉及Maven的使用,以构建Web应用。 首先,了解RESTful WebService的基本概念。REST(Representational State Transfer)是一种...
以下是实现C# WinForm和HTTP文件上传的步骤: 1. 创建WinForm界面: - 使用Visual Studio新建一个WinForm项目。 - 在设计视图中添加一个OpenFileDialog控件,用于让用户选择文件。 - 添加一个Button控件,作为...
`Commons FileUpload`提供了一套完整的API,可以方便地处理文件上传,而`MultipartFile`则是Spring框架对文件上传的抽象,使得处理文件更简单易懂。 在数据访问层,可能需要将文件的一些元数据(如文件名、大小、...
综上所述,实现基于SSH框架的文件上传下载及图片显示涉及多个层面的技术,包括SSH框架的整合、文件存储策略、前端交互以及安全性和性能优化。掌握这些知识点,可以让你在JavaWeb开发中更加游刃有余。
OkGo 支持 GET、POST、PUT、DELETE 等多种 HTTP 请求方法,并且支持同步、异步请求,同时提供了文件上传和下载的功能。对于文件下载,OkGo 可以实现断点续传和后台下载。而在文件上传方面,它支持多文件上传,可以...
在本项目中,我们将学习如何利用Struts框架实现多文件上传的功能,这对于初学者来说是一个很好的实践项目,能够帮助理解和掌握Struts的核心概念。 首先,了解文件上传的基本原理。在Web应用中,文件上传通常涉及到...
在SSH框架中,文件上传功能是常见的需求,特别是在处理用户提交的表单数据时,例如图片、文档或者其他多媒体文件的上传。这个“ssh框架上传文件测试”可能是针对这一功能的一个实践项目或测试案例。 首先,让我们...