任务
1_上传
2_利用工厂解耦
3_查询订单
4_异步加载显示详情
5_修改订单状态
6_将项目部署到LINUX上
第1章 上传
1.1 上传准备工作
*_Form method=”post”
*_Form
*_Form enctype=”multiprt/form-data”
1.2 上传协议格式
1.3 利用工具实现上传思路 commons-fileupload.jar commons-io.jar
1.4 原理分析
1.5 步骤实现
1.5.1_页面跳转
*_准备工作
/admin/product/list.jsp ,修改了 addProduct() 函数中的链接
window.location.href = "${pageContext.request.contextPath}/AdminProductServlet?method=addProductUI";
*_/admin/product/add.jsp 遍历分类信息
<select name="cid">
<c:forEach items="${allCats}" var="c">
<option value="1">${c.cname}</option>
</c:forEach>
</select>
1.5.2_实现上传
1_准备工作
*_设置form: method=post enctype=”multipart/form-data”
*_确定form标签下的各个组件的name属性的值保持合法一致
第2章 2_利用工厂解耦
我们当前的开发末实现,service层对DAO层有依赖,例如在UserServcieImp中出现了
UserDao userDao=new UserDaoImp(); 这条语句.
假如我们做了一个产品OA,但是我们没有办法确定客户采用什么样的数据库,此时我们需要
需要为当前项目开发不同的数据库的版本,例如为oracle,sqlserver,mysql分别开发不同的DAO的实现,但是在项目具体的运行时,我们由无法确定到底执行那种版本.
我们可以通过配置文件来配置dao层的各个具体的实现.
Eg: 在src下创建一个application.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="CategoryDao" class="cn.itcast.store.dao.daoImp.CategoryDaoImp"/>
<bean id="UserDao" class="cn.itcast.store.dao.daoImp.UserDaoImp"/>
<bean id="ProductDao" class="cn.itcast.store.dao.daoImp.ProductDaoImp"/>
</beans>
之后我们采用一个工厂来通过读取配置文件创建不同的对象来实现解耦
第3章 查询订单
3.1 原理
3.2 步骤实现
1_准备工作 /admin/left.jsp
d.add(‘010501’,‘0105’,‘订单管理’,
d.add(‘010501’,‘0105’,‘订单管理’,’
p
a
g
e
C
o
n
t
e
x
t
.
r
e
q
u
e
s
t
.
c
o
n
t
e
x
t
P
a
t
h
/
A
d
m
i
n
O
r
d
e
r
S
e
r
v
l
e
t
?
m
e
t
h
o
d
=
f
i
n
d
O
r
d
e
r
s
′
,
′
′
,
′
m
a
i
n
F
r
a
m
e
′
)
;
d
.
a
d
d
(
′
01050
2
′
,
′
010
5
′
,
′
未
付
款
的
订
单
′
,
′
{pageContext.request.contextPath}/AdminOrderServlet?method=findOrders','','mainFrame'); d.add('010502','0105','未付款的订单','
pageContext.request.contextPath/AdminOrderServlet?method=findOrders′,′′,′mainFrame′);d.add(′010502′,′0105′,′未付款的订单′,′{pageContext.request.contextPath}/AdminOrderServlet?method=findOrders&state=1’,’’,‘mainFrame’);
d.add(‘010503’,‘0105’,‘已付款订单’,’KaTeX parse error: Expected 'EOF', got '&' at position 70: …thod=findOrders&̲state=2','','ma…{pageContext.request.contextPath}/AdminOrderServlet?method=findOrders&state=3’,’’,‘mainFrame’);
d.add(‘010505’,‘0105’,‘已完成的订单’,’${pageContext.request.contextPath}/AdminOrderServlet?method=findOrders&state=4’,’’,‘mainFrame’);
2_AdminOrderServlet___>findOrders
获取订单状态
如果获取不到状态获取全部订单
如果可以获取到状态,查询不同状态的订单
将订单放入request
转发/admin/order/lis.jsp
3_OrderService____OrderDao
4_/admin/order/lis.jsp
获取全部订单信息完成响应
总结:本功能特点:多个链连共享相同的代码段
第4章 异步加载显示订单详情
4.1 原理
4.2 步骤
1_将当前功能要实现最终效果先实现(静态效果)
2_用户点击订单详情按钮,向服务端发起ajax请求,向服务端传递订单id
3_服务端获取到订单ID,查询这个订单下所有的订单项以及订单项对应的商品信息,返回集合
4_将返回的集合转换为JSON格式字符串,响应到客户端
5_调试,排除2端错误
6_在客户端获取到服务端想回会的JSON格式的数据,将这些数据绑定在页面上
总结: Ajax功能,注意思路,开发步骤
第5章 修改订单状态
5.1 原理分析
5.2 步骤实现
1_准备工作 admin/order/list.jsp
发货
2_AdminOrderServlet___>updateOrderByOid
获取订单ID
根据订单ID查询订单
设置订单状态
修改订单信息
重新定向到查询已发货订单
3_service__>dao
第6章 将项目部署到linux系统上
1_导出SQL语句
2_启动linux,利用CTR连接
3_修改2个配置文件中的参数 c3p0.xml jedisUtils
4_导出项目,以war包形式
5_启动tomcat
6_利用sqlyong连接linux下的mysql,恢复数据
7_启动redis
8_利用fileziller将项目发送到linux上tomcat下的webapp下