昨天把前台的一些简单的样式和外观搞定了。而现在要做的就是捋清关系将逻辑部分逐个实现,在此之前先将所需测试的数据库建立:
--顾客表 create table tbl_customer( id number primary key, name varchar2(20) , password varchar2(200), zip varchar2(20), address varchar2(200), telephone varchar2(15), email varchar2(50) ); --书 create table tbl_book( id number primary key, name varchar2(100), price number(10,2) ); --订单表 create table tbl_order( id number primary key, cost number(10,2), orderDate date, customer_id number references tbl_customer(id) ); --订单明细表 create table tbl_line( id number primary key, num number, order_id number references tbl_order(id), book_id number references tbl_book(id) ); insert into tbl_book values(1,'JAVA核心技术',81.00); insert into tbl_book values(2,'UNIX技术手册',21.15); insert into tbl_book values(3,'ORACLE9I参考手册',108.00); insert into tbl_book values(4,'JSP设计(第三版)',59.25); insert into tbl_book values(5,'JAVA SERVLET 编程(第二版)',38.25); insert into tbl_book values(6,'XML 高级编程(第2版)',97.20); insert into tbl_book values(7,'精通STRUTS:基于MVC的JAVA WEB设计与开发',36.75); insert into tbl_book values(8,'精通HIBERNATE:JAVA对象持久化技术详解',44.25); insert into tbl_book values(9,'SPRING IN ACTION中文版',29.25); insert into tbl_book values(10,'精通EJB 3.0',44.25); --创建序列 create sequence my_seq;
在创建完成数据库之后第一件事情就是将登录登出 注册功能实现。而由于涉及前台和数据库之间的数据传送,所以以三层架构的模式来完成的话是这样的:在register.jsp页面注册一个新用户,用户名作为以后登陆唯一标识。当注册成功的话,跳转到login.jsp页面
详细描述:1.需要判断注册的用户名是否已经在数据库中存在。
2.最后将注册信息保存到Customer
具体步骤:1. 实现CustomerDao接口中的saveCustomer()方法
2.实现ICustomerService接口中的业务逻辑register()方法
3.创建RegisterServlet.java,在该Servlet中调用ICustomerService接口中的register()方法进行注册。
而一个用户在登陆之后创建session 所以和注册时同样的处理流程:在login.jsp页面上用户可以输入用户名和密码进行登陆,如果用户名和密码都正确,则登陆成功跳转到index.jsp。如果不正确,需要提示用户并且还是跳转到login.jsp页面继续登陆。
具体登陆过程:1. 查看登陆的用户名是否存在
2. 查看密码是否正确
具体步骤:1 . 实现CustomerDao接口中的findByName()方法
2.实现ICustomerService接口中的业务逻辑login()方法
3.创建LoginServlet.java,在该Servlet中调用ICustomerService接口中的login()方法进行登陆。
4 . 从application中取出所有的Book在index.jsp中显示
而本次设计的核心则是购物车:
这里先采用集合的处理办法,将每个订单列存入集合当中。
1. 增加订单明细line:在index.jsp页面中点击添加到购物车按钮后往购物车(ShoppingCart.java)中增加一个line.(自己也可以添加一列,表示购买数量)
具体步骤: 1) 创建AddOrderlineServlet.java
2) 在该Servlet中,先从session中获取当前登陆用户对象和购物车对象,根据从index.jsp页面传入的bookid来构造一个line对象,然后用ShoppingCart对象,并且调用其中的add(Line orderline)方法往购物车中增加一个line对象。
3) 增加Orderline成功后跳转到index.jsp页面
2. 查看购物车
在index.jsp页面上点击查看购物车的按钮可以查看购物车中所有Line的信息。
具体步骤:1) 点击查看购物车按钮后链接到shopcar.jsp
2) 在shopcar.jsp页面中,从Session中取出ShoppingCart中的line对象并且在该页面上输出所有其中的line信息。
3. 删除line
在shopcar.jsp页面中点击取消按钮就可以从购物车中删除一个指定的Orderline。
具体步骤:1) 创建DelOrderlineServlet.java
2) 在Servlet中获得shopcar.jsp页面中传递过来的lineid(bookid)。
3) 从Session中获得ShoppingCart对象,并且调用它的dropLine(Long lineid)方法来删除一个指定的Orderline对象。
4) 删除成功后跳转到shopcar.jsp页面
4. 修改line:
在shopcar.jsp页面上修改图书数量并点击保存修改按钮后可以修改指定一个line的信息。
具体步骤:1) 创建EditOrderlineServlet.java
2) 在该Servlet中先从Session中获得ShoppingCart对象,然后获得从shopcar.jsp传递过来的lineid(bookid)和num,最后根据lineid来获得指定的Orderline对象,并且修改数量为num。
3) 修改成功后跳转到shopcar.jsp页面
5. 清空购物车
在shopcar.jsp页面中点击清空购物车后可以删除购物车中所有的line。
具体步骤:1) 创建ClearCartServlet.java
2) 在该Servlet中获得ShoppingCart对象,然后调用其中的clear()方法来清空购物车。
3) 清空购物车成功后跳转到index.jsp页面
由以上的处理过程中Dao层由于有Mybatis的参与,还记得正确配置Mybatis的映射文件。到此两个核心部分就完成了。