servlet 2.3 例子:上传文件

一、@MultipartConfig

使用@MultipartConfig 注解的servlet 可以调用request.getPart(String name) /request.getParts() ,获取Multipart/form-data 请求的part组件

@MultipartConfig 的属性

1、 fileSizeThreshold int 当数据量大于该值时,内容将被写入文件,默认为0。
2、location String 存放生成的文件地址,文件目录的绝对路径
3、maxFileSize long 允许上传的文件最大值。默认值为 -1,表示没有限制。
4、maxRequestSize long 是 针对该 multipart/form-data 请求的最大数量,默认值为 -1,表示没有限制。

servlet 支持的request.getParts() 方法

request.getParts() 方法返回全部part对象的集合,如果有多个输入文件,则返回多个part对象。
也可以通过request.getPart(String name) 方法 获取特定part对象

二、上传文件

三、inputStream总结

(1)从流中读取数据
int read() 读取一个字节,返回值为所读得字节
int read(byte b[]) 读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际独取的字节的数量。
int read(byte b[] ,int off,int len)读取len个字节,放置到以下标off开始字节数组b中,返回值为实际读取的字节的数量。
int available() 返回值为流中尚未读取的字节的数量。
long skip(long n);读指针跳过n个字节不读,返回值为实际跳过的字节数量
(2)关闭流
close() 流操作完毕后必须关闭
(3)使用输入流中的标记
void mark(int readlimit)纪录当前指针的所在位置.readlimit表示读指针读出的readlimit个字节后所标记的指针位置才实效。
void reset() 把读指针重新指向用mark方法所记录的位置
boolean markSupported() 当前的流是否支持读指针的记录功能。

你可能感兴趣的:(servlet 2.3 例子:上传文件)