美文网首页
Java教程:什么是ServletFileUpload类方法?

Java教程:什么是ServletFileUpload类方法?

作者: 鹤子青云上 | 来源:发表于2022-11-28 16:44 被阅读0次

ServletFileUpload类
ServletFileUpload类是Apache组件处理文件上传的核心高级类,通过使用parseRequest(HttpServletRequest)方法可以将HTML中每个表单提交的数据封装成个Fileltem对象,然后以List列表的形式返回。接下来,首先看一下ServletFileUpload类的构造方法如下所示:

ServletFileUpload()

构造一个未初始化的ServletFileUpload实例对象

ServletFileUpload(FileItemFactory fileItemFactory)

根据参数指定的FileItemFactory对象创建一个ServletFileUpload对象

由于在文件上传过程中,FileltemFactory类必须设置,因此,在使用第一个构造方法创建ServletFileUpload对象时,首先需要在解析请求之前调用setFileltemFactory()方法设置fileltemFactory属性。

了解了ServletFileUpload对象的创建,接下来,学习一下ServletFileUpload类的方法,具体如下。

  1. setSizeMax(long sizeMax)和getSizeMax()方法

setSizeMax()方法继承自FileUploadBase类,用于设置请求消息实体内容(即所有上数据)的最大尺寸限制,以防止客户端恶意上传超大文件来浪费服务器端的存储空间。其中,参数sizeMax以字节为单位。

另外,对应的getSizeMax()方法用于读取请求消息实体内容所允许的最大值。

2.setFileSizeMax(long fileSizeMax)方法

setFileSizeMax()方法继承自FileUploadBase类,用于设置单个上传文件的最大尺限制,以防止客户端恶意上传超大文件来浪费服务器端的存储空间。其中,参数fileSizeMax是以字节为单位。

另外,对应的getFileSizeMax()方法用于获取单个上传文件所允许的最大值。

  1. parseRequest(javax.servlet.http.HttpServletRequest req)

parseRequest()方法是ServletFileUpload类的重要方法,它是对HTTP请求消息体内容进行解析的入口。它解析出FORM表单中的每个字段的数据,并将它们分别包装成独立的Fileltem对象,然后将这些Fileltem对象加入进一个 List类型的集合对象中返回。

  1. getltemlterator(HttpServletRequest request)

getItemIterator()方法和parseRequest()方法基本相同。但是getItemIterator()方法返回的是一个迭代器,该迭代器中保存的不是Fileltem对象,而是FileltemStream对象果希望进一步提高性能,可以采用getItemIterator()方法,直接获得每一个文件项的数据输人流,做底层处理;如果性能不是问题,希望代码简单,则采用parseRequest()方法即可。

  1. isMultipartContent(HttpServletRequest req)

isMultipartContent()方法用于判断请求消息中的内容是否是multipart/form-data类型,如果是,则返回true,否则返回false。需要注意的是,isMultipartContent()方法是静态方法,不用创建ServletFileUpload类的实例对象即可被调用。

  1. getFileltemFactory()和setFileltemFactory(FileltemFactory factory)

这两个方法继承自FileUpload类,分别用于读取和设置fileltemFactory属性。

  1. setHeaderEncoding(String encoding)方法和getHeaderEncoding()方法

这两个方法继承自FileUploadBase类,用于设置和读取字符编码。需要注意的是,如果没有使用setHeaderEncoding()设置字符编码,则getHeaderEncoding()方法返回null,上传组件会采用HttDServletRequest设置的字符编码。但是,如果HttpServletRequest的字符编码和为null,这时,上传组件将采用系统默认的字符编码。获取系统默认字符编码的方式如下所示:

System.getProperty("file.encoding")

相关文章

  • 文件的上传与下载

    文件上传的相关API DiskFileItemFactory类 ServletFileUpload DiskFil...

  • 上传与下载

    文件上传的相关API DiskFileItemFactory类 ServletFileUpload DiskFil...

  • Java(JavaEE)学习线路图1

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • Java学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习教程

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • autojs打印java类属性和方法

    牙叔教程 简单易学 使用场景 打印java类 构造方法 属性 方法 源码 声明 部分内容来自网络本教程仅用于学习,...

  • 第一章Java类方法04定义带返回值的方法

    package Java类方法; //2019.7.10 /*为什么使用带返回值的方法 * 在java的math类...

  • String 总结

    Java String类 Java lang.String类用法实例教程。 简介java.lang.String类...

  • Files

    Java NIO的Files(java.nio.file.Files)类提供一些操作文件系统的文件的方法。本篇教程...

网友评论

      本文标题:Java教程:什么是ServletFileUpload类方法?

      本文链接:https://www.haomeiwen.com/subject/bchtxdtx.html