论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>编程开发>>AJAX>>正文

AJAX+JSF组件实现高性能的文件上载

www.xker.com 作者:朱先忠编译 来源:天极开发 加入日期:2006-3-22 10:06:56

【问题提问、论坛交流】一、 引言

  基于浏览器的文件上传,特别是对于通过<input type="file">标签包含到Web页面来实现上传的情况,还存在较严重的性能问题我们知道,超过10MB的上传文件经常导致一种非常痛苦的用户体验一旦用户提交了文件,在浏览器把文件上传到服务器的过程中,界面看上去似乎处于静止状态由于这一切发生在后台,所以许多没有耐心的用户开始认为服务器"挂"了,因而再次提交文件,这当然使得情况变得更糟糕

  为了尽可能使得文件上传感觉更友好些,一旦用户提交文件,许多站点将显示一个中间过程动画(例如一旋转图标)尽管这一技术在上传提交到服务器时起一些作用,但它还是提供了太少的有关文件上传状态的信息解决这个问题的另外一种尝试是实现一个applet——它通过FTP把文件上传到服务器这一方案的缺点是:限制了你的用户,必须要有一个支持Java的浏览器

  在本文中,我们将实现一个具有AJAX能力的组件——它不仅实现把文件上传到服务器,而且"实时地"监视文件上传的实际过程这个组件工作的四个阶段显示于下面的图1,2,3和4中:


图1.阶段1:选择文件上传

图2.阶段2:上传该文件到服务器

图3.阶段3:上传完成

图4.阶段4:文件上传摘要

  二、 实现该组件

  首先,我们分析创建多部分过滤的过程,它将允许我们处理并且监视文件上传然后,我们将继续实现JavaServer Faces(JSF)组件-它将提供给用户连续的回馈,以支持AJAX的进度条方式

  (一) 多部分过滤:UploadMultipartFilter

  多部分过滤的任务是拦截到来的文件上传并且把该文件写到一个服务器上的临时目录中同时,它还将监视接收的字节数并且确定已经上载该文件的程度幸运的是,现在有一个优秀的Jakarta-Commons开源库可以利用(FileUpload),可以由它来负责分析一个HTTP多部分请求并且把文件上传到服务器我们要做的是扩展该库并且加入我们需要的"钩子"来监视已经处理了多少字节

public class UploadMultipartFilter implements Filter{
 public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
 throws IOException, ServletException {
  HttpServletRequest hRequest = (HttpServletRequest)request;
  //检查是否我们在处理一个多部分请求
  String contentHeader = hRequest.getHeader("content-type");
  boolean isMultipart = ( contentHeader != null && contentHeader.indexOf("multipart/form-data") != -1);
  if(isMultipart == false){
   chain.doFilter(request,response);
  }else{
   UploadMultipartRequestWrapper wrapper = new UploadMultipartRequestWrapper(hRequest);
   chain.doFilter(wrapper,response);
  }
  ...
 }

  正如你所见,UploadMultipartFilter类简单地检查了当前的请求是否是一个多部分请求如果该请求不包含文件上传,该请求将被传递到请求链中的下一个过滤,而不进行任何另外的处理否则,该请求将被包装在一个UploadMultipartRequestWrapper中

  (二) UploadMultipartRequestWrapper类

本新闻共7页,当前在第1页  1  2  3  4  5  6  7  

编辑:xker.com

上一篇:AJAX.NET用户开发指南
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
·AJAX.NET用户开发指南·利用AJAX+J2EE开发组织机构管理系统·Ajax.Net快速入门
·展示几个使用Ajax技术的站点·Ajax与《Ajax基础教程》·AJAX编写用户注册实例及技术小结
·用AJAX调用SOAP Web服务:构建Web服务·使用AJAX和J2EE创建瘦客户端·AJAX技术介绍
·某知名大企业的教训--慎用AJAX框架·做了两个月ajax,总结一些小经验·使用AJAX技术开发新一代Web应用程序 
·AJAX应用所解决的一些常见问题·使用AJAX的十大理由(译文)·AJAX会取代桌面系统吗?(译文) 
推荐文章 最新文章 热门文章
·AJAX+JSF组件实现高性能的文件上载
·自己制作带农历的年历
·全面分析Java的垃圾回收机制
·3DMAX打造宇宙中遥望美丽的地球
·实现.NET应用程序的自动更新
·黑客也在乎安全:谈黑客避开检测的手
·内网安全技术十大策略 打造坚固的内网
·优化MySQL数据库性能的八大“妙手”
·给系统减肥 卸载Windows中的集成组件
·MySQL数据库中mysqldump命令使用详解
·SqlServer存储过程/函数加/解密
·CSS属性中Display与Visibility的不同
·网管实战 远程管理让服务发布遭遇意外
·骗你不商量的系统优化秘籍
·教您30分钟打造Linux的VPN服务器
·QQ通讯录简单又实用 双击人名就发短信
·腾讯QQ2006珊瑚虫版 v4.2.2a下载
·QQ空间Qzone使用入门与攻略
·定位对手 巧用天网防火墙查对方IP地址
·AJAX+JSF组件实现高性能的文件上载
·自己制作带农历的年历
·程序实现动态改变IP地址
·SQL Server 2005数据库镜像简介
·用工具就能搞定 Win XP最新提速方法
·正确认识网站的搜索引擎优化策略
·用户体验主导个人门户新概念
·CorelDraw填色技巧简明图解手册
·看清网络游戏盗号的3大骗术
·为Win2003服务器打造铜墙铁壁
·添加监视点 实时监控Excel单元格
·个人简历表格
·免费代理IP(每日更新)
·QQ收费头像免费使用的方法 
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·系统优化 专题
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·最经典的黑客入门教材
·求职简历封皮
·ACDSee v8.0注册码
·应届毕业生求职信
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: