利用DWR开发基于Ajax的文件上载portlet

简介

Web 门户为用户提供了访问各种资源和服务的中心网关。与此同时,它们还为用户提供了与其他用户进行资源共享的平台。从照片到音频、视频文件再到研究用的科学数据集,用户可以共享任何内容。因此,文件上载是 Web 门户的一种基本的必备功能。

当今的 Web 门户在很大程度上依赖于 Java portlet 技术。虽然很多使用 Ajax 的开发人员都给出了各种各样的文件上载进度条解决方案,但我们还没有听说过哪个是基于 portlet 的。本文展示了如何开发基于 Ajax 的文件上载 portlet,此 portlet 能显示文件上载过程的进度条。此 portlet 对于那些想要共享大型音频、视频和科学文件的人士尤其有用。

要跟上本文的进度,您应该对使用 Java Servlets 和 JavaServer Pages (JSPs) 进行 Web 开发十分熟悉。而且,还必须了解门户和 portlet 技术的开发。当然,如果您对 portlet 技术还不怎么精通,也不要现在就放弃本文,因为您会在本文中看到对 portlet 技术的简单介绍,以及一些有用的资源可用来帮助您加快学习的进程。

在测试本文给出的这个文件上载 portlet 前,可以考虑尝试使用一种遵从 JSR 168 规范的门户框架,比如 IBM WebSphere Portal Server、Apache Pluto、eXo 平台或 Liferay Portal。我们在本文中使用的是 Apache Pluto 1.0.1、JDK 5.0 Update 10 和 Apache Ant Version 1.6.5。

portlet 的基本概念

一般地,可以将 portlet 视为一种 Web 组件。Portlet 与 servlet 类似,但前者更关注于应用程序的表示层。portlet 的典型输出是 HTML 片断,这些片断可由 Web 门户随后再组装起来。Portlet 本身由 portlet 容器管理。portlet 的主要特性包括:

多模式:portlet 可以在不同的模式下有不同的视图。例如,除了查看 模式,portlet 还支持编辑 模式以便用户可以设置其自身的首选项。

多个窗口状态:portlet 可以最小化、最大化等。

可定制参数:portlet 可以定义参数,而这些参数可以由用户定制。

要获得有关 portlet 的更多详细信息,可以参考 Java Portlet Specification 1.0,JSR 168(JSR 168 的后续版本 JSR 286 预计会于 2007 年后半年发布,其中包含了一些改进,比如 portlet 间通信和 portlet 过滤器)。相关链接,请参看 参考资料。

开始创建文件上载 portlet

文件上载 portlet 的基石是 Apache Commons FileUpload 包(本文也称之为 FileUpload)。除了支持 servlet 内的文件上载外,Apache Commons FileUpload Version 1.1 包还支持 portlet 中的文件上载。本文使用的是 Apache Commons FileUpload 版本 1.2。

基本上,开发文件上载进度条需要两步:

在服务器端检索文件上载过程

从门户服务器进行客户端的文件上载检索和显示

时间: 2024-09-20 05:50:47

利用DWR开发基于Ajax的文件上载portlet的相关文章

基于ajax实现文件上传并显示进度条_javascript技巧

下面给大家分享下基于ajax实现文件上传并显示进度条.在jsp部分,需要设计一个表单,form的属性添加 enctype="multipart/form-data",设计一个iframe,作为隐藏.form的target等于iframe的name; 在servlet部分:文件上传用的Commons-FileupLoad,需要两个Jar,commons-fileupload和commons-io,少了第二个会报出找不到类的异常: 第一个servlet处理上传,及把上传进度保存到sessi

利用C#开发基于snmpsharpnet基础的SNMP开发应用

由于项目的需要,需要使用SNMP来进行相关的开发,需要在我的程序中利用SNMP的Trap协议给指定的系统程序发送相关的设备数据信息, 使得其系统能够监控到设备的最新信息以及状态,对方只是提供了一个Java的例子,而我的程序是C#开发的,因此对这方面的知识进行了解学习,完成了相关的功能,本文有感于此,对SNMP方面做了一些开发总结,以求树碑到此一游,独乐不如众乐,邀兴趣之士猎奇探秘. 首先介绍标题的几个问题,SNMP是什么,snmpsharpnet又是什么,开发能解决什么问题? SNMP是什么呢?

开发基于AJAX的Blog系统AJAXPress

ajax AJAXPress是一个基于 AJAX 的Blog 系统.它是一个独立的程序写于 PHP 使用 MySQL 数据库,允许用户创建他们自己的 基于 AJAX 的 Blog, 并且有一个完整的基于AJAX 的 Admin 界面. AJAXPress 的在线演示. 详见:http://www.ajaxpress.org/#1,0

利用Eclipse开发基于OSGi的Bundle应用

开放服务网关协议 (Open Services Gateway Initiative),简称 OSGi,为网络服务定义了一个标准的.面向服务的计算环境,为用户提供了开放的.面向服务组件的.易于部署的编程模型,这个编程模型允许用户将定义好的接口规范绑定到 OSGi 运行环境中的特定Service,在构件 SOA 面向服务为中心的企业应用的过程中,OSGi 技术正发挥越来越重要的作用.在本文中,将介绍 OSGi 的概念和体系结构,并且利用 Eclipse 3.2 开发一个基于 OSGi 规范的服务应

关于利用myeclipse开发基于xfire的webservice

http://blog.csdn.net/peirenlei/article/details/1774523

在 Apache Tuscany 上开发基于 SCA 的 Web 2.0 应用

引言 如今在企业级应用中,Ajax.Widget.RSS/Atom 等 Web 2.0 技术正在得到越来越广泛的使用,这些技术不但产生了良好的用户体验,同时也来越来越多地影响着许多前端系统的编程模式和系统架构.许多传统的 Java EE 产品和框架也在越来越多地引入这些 Web 2.0 技术,如 Struts2 和 JSF 都有了越来越完善的 Ajax 扩展,Portal 产品中也基于 Dojo 等 javascript 框架引入部分刷新等机制,大幅提升了性能和用户体验.可以看出,Web 2.0

使用JSF和MyFaces实现文件上载

js Web浏览器为我们利用Web应用程序发送文件提供了一条简单的途径,但是当前版本的Java Web标准(servlets.JSP和JSF)却无法为我们提供任何帮助.幸运的是,有一些第三方框架组件(例如Apache Commons File Upload. Apache MyFaces和Oracle ADF Faces)实现了这种特性,它们都暴露了简单的API和定制的标记(tag). 本文的前面一部分介绍文件上载操作是如何实现的,解释了MyFaces和通用文件上载(前者在内部使用了后者).我们

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

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

基于jsp的AJAX多文件上传的实例_JSP编程

最近的项目开发中,遇到了一个多文件上传的问题,即在不刷新页面的情况下,上传多个文件至服务器.现总结分享如下: 本文主要采用了基于jsp的ajax,jquery,servlet等技术. 1.upload.jsp 点击上传时,调用对应的fileupload函数,通过ajax将文件异步传送到servlet中处理.注意在文件上载时,所使用的编码类型应当是"multipart/form-data",它既可以发送文本数据,也支持二进制数据上载. <%@ page language="