day22-实战5

来源:互联网 发布:中小学生一起作业软件 编辑:程序博客网 时间:2024/06/05 17:27
回顾:
用户 订单 订单项表 商品
实体:
订单:包含一个用户的实体,一个订单项的list集合
订单项:包含一个订单的实体,一个商品的实体
//////////////////////
查询我的订单:
1.先要把所有的订单的常规的字段查询出来
2.遍历订单集合,拿到每一个订单(缺少订单项list),
3.通过商品表和订单项表联合查询 条件是:订单id
4.只需要封装orderItem,然后将orderitem添加到订单的订单项列表中即可
/////////////////////////
在线支付:接口开发
注意的问题:
需要什么参数:文档中
如何保证数据安全:数字签名
最后修改订单的状态
////////////////////////////////
案例1-分类信息的curd
步骤分析:
左边的dtree:
1.导入dtree.js
2.导入dtree.css
3.创建一个div 添加样式 class="dtree"
4.在div中编写js代码
创建一个树
d = new dTree('d');
添加根节点
通过 d.add(当前节点的id,父节点的id,显示的名称,点击时候打开的连接,放上去显示的名称,在那个地方打开这个连接)
注意:
根节点的父节点的id写成-1
添加其他节点
5.最后通过document.write(d) 写到页面上即可
分类信息添加:
1.应在在左边的dtree上添加连接(展示所有的分类信息)
d.add(...,"/store/adminCategory?method=findAll","","mainFrame")
2.创建adminCategoryservlet ,编写findAll()
查询的结果是一个list,将list放入request域中,然后请求转发/admin/category/list.jsp

添加分类的步骤:
1.编写一个连接,
/store/adminCategory?method=addUI
2.请求转发到/admin/category/add.jsp
3.add.jsp就是一个表单页面
编写表单的action属性 /store/adminCategory?method=add
给分类的名称字段添加一个name属性 name="cname"
4.admincategoryservlet的add方法
获取分类的名称
封装成category 设置id
调用categoryservice的add方法
页面重定向 /store/adminCategory?method=findAll
5.categoryservice的add方法
暂时调用dao
6.dao中添加一条数据

修改分类步骤分析:
1.在list.jsp页面上点击修改(编辑)
/store/adminCategory?method=getById&cid=???
2.在getById方法中
获取cid
调用service 通过id获取一个分类,
将category放入request域中
请求转发 edit.jsp
3.eidt页面是一个表单
添加action属性
/store/adminCategory?method=update
修改内容 点击提交
添加隐藏域 cid
4.在update方法中
获取cid和cname
封装成category
调用service的update方法
重定向/store/adminCategory?method=findAll
5.在service的update方法中
调用dao更新
清空缓存
6.dao中更新数据

删除分类步骤分析:
1.在list.jsp上编写 删除连接
/store/adminCategory?method=delete&cid=??
2.在delete方法中
获取cid
调用service的delete方法
页面重定向/store/adminCategory?method=findAll
3.service中delete
添加事务
通过cid先更新所有的商品分类信息
调用dao 删除分类
事务控制
清空缓存
///////////////////
案例2-商品管理-添加商品
技术分析:
文件上传(fileUpload)
浏览器端要求:
post请求
input type="file"
表单的 enctype="multipart/form-data"
服务器要求(fileUpload)
通过reuqest.getParameterxxx()获取的参数全部为空
使用步骤:
导入jar包
创建一个磁盘文件项工厂
创建一个核心文件上传对象 ServletUpLoad
上传对象调用方法解析请求 获取一个List<FileItem>

////////////////////////
展示所有商品的步骤分析:
1.修改left.jsp的页面的连接
/store/adminProduct?method=findAll
2.在adminProductservlet的 findAll方法中
获取productservice 查询所有的商品 返回list
将list放入request域中 请求转发 /admin/product/list.jsp
//////////////////////////////////
添加商品(上传图片)
1.修改页面上添加连接
/store/adminProduct?method=addUI
2.在addUI请求转发到 添加页面
3.在表单页面上
修改action : /store/addProductServlet
提交方式: method="post"
添加enctype属性: enctype="multipart/form-data"
给每个字段添加name属性
4.addProductServlet
通过request.getParameterMap获取的信息全部为空
我们想使用beanuitls.populate(bean,map),
我们需要创建一个map集合 ,将前台接受过来信息手动的put到map中
注意:
商品的图片:
1:保存到服务器的磁盘
2.在数据中添加图片的位置

调用productservice完成添加商品操作
重定向到所有的商品的上面

////////////////////////////////
////////////////////////////////
////////////////////////////////
fileUpload使用
创建一个磁盘文件项工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
创建一个核心文件上传对象 ServletFileUpLoad
ServletFileUpload upload = new ServletFileUpload(factory);
上传对象调用方法解析请求 获取一个List<FileItem>
List<FileItem> list = upload.parseRequest(request);
遍历list获取每一个文件项

isFormFiled():判断是否是普通上传组件
true:普通上传组件
false:文件上传组件
getFiledName():获取表单子标签的name属性值
若是普通的上传组件
getString("utf-8"):获取用户输入的值
若是文件上传组件
getName():获取上传文件的名称
getInputStream():获取上传文件流
最后删除临时文件
delete()
////////////////////////////////////
案例3-订单管理
a.查询订单
b.更新状态
查询订单:
所有的订单 不区分用户
基本的sql select * from orders where 1=1
判断是否有state 若有则添加state 最后order by ordertime desc
1.在left.jsp上添加5个连接
/store/adminOrder?method=findAllByState 根据情况传入合适state就可以了
2.在adminOrderServlet的findAllByState中
接受state
调用orderservice查询,list
将list放入request域中,请求转发list.jsp
3.orderDao
先写一个基本的sql
判断state是否为空
最后添加order by

扩展:
查询订单详情
点击每一个订单后面的订单详情,将该订单的oid通过ajax传递到后台查询
步骤分析:
给按钮添加事件

修改订单的状态:
例如:后台页面点击发货的 需要将订单的状态修改
在客户的页面上查询我的订单,点击确认收货的时候 修改订单的状态
1.点击 修改状态
/store/adminOrder?method=updateState&oid=??state=??
2.在updatestate方法中,
接受参数 oid state
调用service修改状态
重定向 查询所有订单已支付的订单列表上

/////////////////////////////////////
/////////////////////////////////////
/////////////////////////////////////
扩展:
在所有的添加方法上记录一下(添加操作)

















原创粉丝点击