上一个任务/上一节       下一个任务/下一节

目录

任务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文档进行学习。