[Day2] 快速利用Servlet+jsp 搭建一个购书系统

/ 0评 / 0

    昨天把前台的一些简单的样式和外观搞定了。而现在要做的就是捋清关系将逻辑部分逐个实现,在此之前先将所需测试的数据库建立:

--顾客表
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的映射文件。到此两个核心部分就完成了。


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注