apache commons fileupload 1.3.1(四)Portlet部分

来源:互联网 发布:2345看图王软件 编辑:程序博客网 时间:2024/05/03 03:29

近段时间,对apache commons fileupload的源码做了深入的了解,在此把一些见解与大家分享。

今天就简介一下commons fileupload的Portlet部分。


首先我们来看看Portlet是什么?

Portlet是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容。作为利用Servlets进行Web应用编程的下一步,Portlets实现了Web应用的模块化和用户中心化。


Portlet部分是为portlet容器环境实现文件上传功能的部分,其由request解析单一部分组成。

但我们应该先来了解一下portlet所依赖的以下commons-fileupload或commons-io类:

org.apache.commons.fileupload.FileUploadBase

该类实现了一些基本的FileUpload功能,但其自身不处理解析部分。其主要工作就是从http中解析出各个属性然后根据属性来调用和传递具体的FileItemFactory类对象来实现解析文件上传的功能。


org.apache.commons.fileupload.FileUpload

该类代理了FileItemFactory,并通过继承FileUploadBase来实现各种通用解析功能。其内部只有FileItemFactory对象的gettersetter方法,以方便其子类使用。


org.apache.commons.fileupload.UploadContext

该接口解决了RequestContextgetContentLength不准确或丢失的问题。使用该接口可以实现向后兼容。但在fileupload2.x中将会被新的方法代替。


org.apache.commons.fileupload.FileItemFactory

该接口提供创建FileItem的方法。


org.apache.commons.fileupload.FileItemIterator

该接口是一个文件对象的迭代器,可迭代返回FileItemStream


org.apache.commons.fileupload.FileUploadException

当解析数据包出现错误时会抛出此异常。


request解析部分:

org.apache.commons.fileupload.portlet.PortletRequestContext

该类实现了UploadContextRequestContext的所有方法,其针对portlet所使用的ActionRequest进行request的处理,主要任务是对request信息进行大类的划分获取。

 

org.apache.commons.fileupload.portlet.PortletFileUpload

该类通过PortletRequestContextrequest信息进行大类的划分提取然后调用其祖父类FileUploadBase的同名方法进行处理,以实现具体针对portlet容器的文件上传功能。




ONE FOR IT是一个呆萌CTO打理的资讯读物,每天只为你准备一篇IT行业新鲜资讯。互联网的前沿,一篇就够了。(ID:OFI)

0 0
原创粉丝点击