java servlet实现购物车

  • 项目介绍

购物车系统主要模拟用户购买商品,实现用户注册、登录、添加商品至购物车、结算、生成订单等功能,并辅助添加管理员对商品进行管理的功能。

  • 系统功能分析和设计

系统首先显示商品列表界面(图1),用户可在此页面进行登录,或者注册账号。未登录的情况下点击加入购物车,会自动跳转至登录页面(图2)。若用户没有账号,可点击“注册”,跳转至注册界面(图3)。注册成功直接跳转至登录界面,登录成功后则显示商品列表界面(图4)。在图1界面中,可点击“管理员”进入管理系统,输入正确密码则进如管理页面(图5),可对商品名称、价格以及是否销售进行修改,还可以添加新的商品至商品列表(图6)。将商品加入购物车后,可修改购买数量,可直接删除单个商品,也可根据选择框删除多个商品,支持继续购物,支持清空购物车。点击“结算”,跳转至确认订单界面(图7),此界面显示,用户个人信息,以及购物车中所商品信息。点击“生成订单”,跳转至订单生成功页面(图8),点击“继续购物”,跳转至商品列表界面(图4),此时可重新继续购物,也可查看历史订单,点击“我的订单”,跳转至历史订单页面(图9),点击“订单号”,则生成相应的订单明细(图10);点击“注销”,则退出系统,返回图1,重新登录即可查看历史订单,或继续购物。至此,实现购物车所有功能。

  • 文件组织结构

  • 数据库设计

 1、数据库需求分析

(1)系统显示商品列表,需要从商品数据库中读取商品信息,建立t_product表,并插入一些商品,管理员可对表t_product中的商品进行修改,或者添加。

(2)用户注册账号,需要建立t_user保存用户信息。

(3)用户添加购物车,将商品信息保存在session对象中,生成订单时创建t_order保存订单信息,订单包括用户的唯一标识,和商品的总价格,以及订单号。

(4)用户查看历史订单时,显示用户和所购买商品的所有信息,建立t_items保存订单明细。

2、数据库逻辑结构设计

t_user保存用户信息,t_product保存商品信息,t_order保存订单信息,t_items保存订单明细。t_order.user_id是t_usr.id的外键,保证每个订单的唯一性;同时t_items.order_id、t_items.product_id分别是t_order. id和t_product. id的外键,保证订单明细中,用户和商品之间的确定性。

3、数据库逻辑结构的实现

商品表
	商品名
	商品单价
	商品状态 0未启用 1启用
create table t_product(
	id int primary key auto_increment,
	name varchar(10), 
	price double,
	status int(1)
);

insert into t_product (name,price,status) values ("pen",10,1);
insert into t_product (name,price,status) values ("pencil",5,1);
insert into t_product (name,price,status) values ("aaa",2,0);
insert into t_product (name,price,status) values ("bbb",3,1);
insert into t_product (name,price,status) values ("ccc",4,1);
insert into t_product (name,price,status) values ("ddd",5,1);

用户表
	
create table t_user(
	id int primary key auto_increment,
	username varchar(10),
	password varchar(10),
	phone varchar(20),
	address varchar(50)
);


订单表
	no 订单号
	user_id 用户外键
create table t_order(
	id int primary key auto_increment,
	no varchar(20),
	price double,
	user_id int,
	foreign key (user_id) references t_user(id)
);

订单明细表
	product_id 商品外键
	order_id 订单外键
create table t_items(
	id int primary key auto_increment,
	num int,
	price double,
	product_id int,
	order_id int,
	foreign key (product_id) references t_product(id),
	foreign key (order_id) references t_order(id)
);
  • 调试中的问题及解决的办法

字符编码

数据库结构:create database spc character set utf8;
Dos系统数据库显示:Set names gbk;
获得Jsp传输数据:
post:

request.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=UTF-8");

get:

String string=new String(info.getBytes("iso-8859-1"), "utf-8");

第一次学习jsp,代码非常粗糙,适合菜鸟借鉴。

猜你喜欢

转载自blog.csdn.net/xia0_ba1/article/details/81381305
今日推荐