上一个任务/上一节 下一个任务/下一节
目录
任务1 实现新闻配图
3.1.1 认识第三方控件
1.第三方控件简介
2.commons-fileupload组件与API
(1)FileItem接口
(2)FileItemFactory 接口与DiskFileItemFactory 类
(3) ServlitFileUpload类
任务1 实现新闻配图
关键步骤如下.
获取commons-fileupload组件;
配置 commons-fileupload组件;
编码实现文件上传;
3.1.1 认识第三方控件
在进行项目开发时,很多功能需要编写大量的代码,业务逻辑复杂,实现相对困难;
在以前,这些功能只能有程序员编码完成,但是有了第三方控件,实现功能就相对简单
了。什么事第三方控件?如何在项目中使用第三方控件?请带着这些问题来学习下面的
内容。
1.第三方控件简介
第三方控件又被称为第三方组件,本书将统一采用第三方组件方式进行后续的描述
第三方组件不是软件本身就具有和提供的功能,而是由一个新的组织或者个人开发出来
的功能软件。
使用第三方组件,程序员可以避免大量编码,减少开发工作量及由于逻辑或算法造成
的程序异常,从而降低开发成本,提高开发效率。第三方组件也存在缺点,由于第三方
组件是第三方组织或者个人提供的,在开发时提供的版本可能会出现Bug。一旦出现
Bug,在解决时就相当麻烦。
2.commons-fileupload组件与API
虽然使用第三方组件可能会出现Bug,但其优势还是非常明显的,而且有很多非常
实用的组件已被广泛应用到各种项目中。其中,commons-fileupload组件是由Apache
开发的一个应用于文件上传的组件,其特点就是使用方便,简单。该组件涉及的API介绍
如下。
(1)FileItem接口
FileItem是一个接口,在截接口中定义了用于处理表单内容及文件内容的方法。
在应用过程中,每一个表单中的单个字段元素,都会被封装成一个FileItem类型的对象,
通过调用FileItem对象的相关方法可以得到相关表单字段元素的数据。在应用程序中,
可以直接用FileItem接口进行访问。
FileItem接口的常用方法如表3-1所示。
表 3-1 FileItem 接口的常用方法
方法 | 返回类型 | 说明 |
getFiledName() | String | 返回表单字段元素的 name 属性值 |
isFormField() | boolean | 判断 FileItem 封装的数据是属于普通表单字段还是文件表单字 段,普通表单字段返回 true ,文件表单字段返回 false |
getName() | String | 返回上传文件字段中的文件名,文件名通常是不含路径信息的, 取决于浏览器实现 |
write(File file) | void | 将 FileItem 对象中的内容保存到指定文件中 |
getString(String encoding) | String | 按照指定的编码格式将内容转换成字符串返回 |
提示
FileItem接口的其他方法请参考API文档进行学习。
(2)FileItemFactory 接口与DiskFileItemFactory 类
FileItemFactory 接口与DiskFileItemFactory类
FileItemFactory 是一个接口,是用于构建FileItem实列的工厂。
DiskFileItemFactory 类是FileItemFactory接口的实现类,在使用过程中,可以使用
DiskFileItemFactory类构造一个FileItemFactory接口类型的实列,语法格式如下。
FileItemFactory factory=new DiskFileItemFactory();(3) ServlitFileUpload类
ServletFileUpload类是Apache文件上传组件中用于处理文件上传的一个核心类。
它的作用是以List形式返回每一个被封装成FileItem类型的表单元素集合。
ServletFileUpload类的构造语法如下。
public ServletFileUpload(FileItemFactory fileitemfactory();ServletFileUpload 类的常用方法如表3-2所示。
表3-2 ServletFileUpload类的常用方法
方法 | 返回类型 | 说明 |
isMultipartContent(HttpServletRequest request) | boolean | 静态方法,用于判断请求数据中的内容是否是 multipart/form-data类型,是返回ture,否返回false
|
parseRequest(HttpServletRequest reqeust) | list | 将请求数据中的每一个字段单独封装成FileItem对象,并以集合方式返回 |
提示
servletFileUpload类的其他方法请参考API文档进行学习。
















