17.12.25,web学习第三十二天,还有一年,努力吧青年 商城项目第五天 我的订单回显和文件上传
来源:互联网 发布:淘宝客推广个多少钱 编辑:程序博客网 时间:2024/06/07 20:34
32.商城我的订单回显和文件上传
1. 三张表之间使用一条语句查询,使用两个条件就可以!
2. 我的订单的回显:
当我们查询数据库封装到bean对象里时,发现数据封不全,又 想留下所有查询数据使用new MapListHandler(),然后便利这个MapListHandler拿出需要的数据进行封装。
我得订单的回显主思路就是拿出数据库所有的订单对象,再对 每个订单的多个订单项进行查询,最后都封装到订单对象中转发 给jsp显示。
Sql:Cannot set ordertime: incompatible types
不能设置阶时间:不兼容的类型
Cannot forward after response has been committed
无法在提交响应后转发
1. 开发时应注意,需要filter过滤的写到一个目录下,不需要的写到 一个目录下,方便filter校验。
2. 注销功能 略
3. 文件上传的介绍和快速入门
Form表单必须为post,entype:multipart/form-data
1)通过request获得请求体的内容,
2)解析请求体
3)遍历数组,分析哪个是普通表单项,哪个是文件上传项。
4)使用io存到服务器上。
导包:commons-fileupload-1.2.1.jar+commons-io-1.4.jar
1)创建磁盘文件项工厂 DiskFileItemFactory
DiskFileItemFactory factory=new DiskFileItemFactory(1024*1024,new File(“path”));
设置缓存文件的大小,设置临时文件存储位置。(或者可以通过 factory.setxxx API设置)
2)创建文件上传的核心类 ServletFileUpload
设置上传文件的名称的编码(解决乱码)
sfu.setHeaderEncoding(“UTF-8”);
3)解析request获得文件项集合 List<FileItem>
4)遍历文件项集合 isFormField()方法判断是否是普通表单项
当是普通文件项的时候:
Item.getFieldName();
item.getString(“UTF-8”);//对普通表单的内容进行编码
此时,当为多文件的form表单提交时request的相关get方法失 效。
当是上传文件的时候:
获得文件的名:item.getName();
获得上传文件的输入流:InputStream in=item.getInputStream();
OutputStream os=new FileOutpuStream(path/+文件名);
IOUtils.copy(in.out);
In.close();out.close();
删除临时文件:
Item.delete();