5月7日上传下载

1.map集合元素改变问题
2.装饰者模式关系理清问题 
装饰者模式的简单理解:A和B都实现了同一个接口,所有A和B都实现了接口里的方法,然后在创建A对象的时候,把你B传进去
然后在调用B里边的对show()方法实现时可以这样:
class B {
A a ;
public B(a){
this.a = a;

}
show(){
//此处可以写一些代码
a.show();
//此处也可以写一些代码
}
}

我们容易看出来,在B的show()方法由于在调用A的show()方法的基础上多了一些代码所以B的show()方法功能更强,
当别人要对象它们的父类时,我可以把A封装成B,这样就会达到增强某些方法的功能了;当然对于其他不需要增强的方法,
在B中需要原封不动地调用A的相应方法来实现,以保证增强后的对象,不丢失原来具有的方法(功能);




3.队列遍历文件问题


4.  4.1 DiskFileItemFactory
磁盘文件项工厂对象定义了 文件项 的分割原则   
设置单个文件项的大小上限:setThreshold() 设置临时文件阈值 
设置临时文件目录:setRepository()
`` ``` `
4.2 ServletFileUpload
servlet文件上传对象,利用分割原则,将request分割成文件项并封装到List集合中
利用isMultipartContent(),判断request的enctype属性设置
利用parseRequest() 将request解析
利用setFileSizeMax()设置单个上传文件大小
利用setSizeMax()设置所有上传文件总大小

4.3 FileItem
遍历 文件项list 得到每一个 文件项 

4.4 每个文件项 针对 
判断是不是普通项 isFormField()
表单字段 getFiledName() getString()
上传项   getName()      getInputStream()
删除临时文件 delete()
分别定义了方法处理数据
5.UUId解决统一文件夹下文件名重复问题;


6.同一个文件目录下文件过多问题:
取唯一文件名---->hashcode()---->每4位换算成整数后做目录名,共8级目录---->


7.文件下载
两个头:
content-Type
content-disposition
一个流:

8.中文文件名下载乱码问题:
不同浏览器解析中文名文件时用的码表不一样,
火狐用的是base64码表
其他浏览器用的是使用url解码
利用request请求头里的user-agent属性值判断浏览器类型

9.点下载之后怎么做到不跳转?


10.用面向对象思想思考jsp,servlet,jstl,el尝试理解每个技术中对象存在的意义与获取方式














猜你喜欢

转载自blog.csdn.net/weixin_36898943/article/details/80721726