网络购物系统功能
1、用户注册(激活账户)
2、用户登陆
3、添加商品
4、查看商品列表
5、查看商品详细信息
6、添加商品购物车
7、查看购物车
8、修改购物车(修改商品数量、删除购物车商品)
9、结算(生成订单)
10、查看订单(状态)
11、取消订单
12、在线支付
13、查看销售榜单(每件商品销售多少件)
14、榜单导出
Day1 :用户注册、用户登录、添加系统添加权限认证管理
Day2 :添加商品、查看商品列表、查看商品详情、添加购物车、查看购物车、修改购物车
Day3 :生成订单、查看订单、订单取消
Day4 :订单在线支付、查看榜单、导出榜单
一、需求分析
用例图:描述系统存在几类用户,每个用户各自有哪些功能
商城系统存在三类用户:
1、游客(未登录):注册、激活、登陆、查看商品列表、查看商品详情
2、商城用户(登陆):查看商品列表、查看商品详情、添加商品到购物车、查看购物车、修改购物车、生成订单、查看订单、取消订单、在线支付
3、管理员(登陆):查看商品列表、查看商品详情、添加商品、查看订单、查看销售榜单、导出榜单
分析绘制E-R图:实体关系图。描述系统存在哪些数据实体(实体属性),实体之间关系
二、设计
1、数据库设计
创建数据库 create database estore;
创建用户 create user angel identified by 'angel'
为用户授权 grant all on estore.* to angel;
设计数据表
用户表:
create table users (
id int primary key not null auto_increment,
username varchar(40) unique not null,
password varchar(40) not null,
nickname varchar(40) not null,
email varchar(100) unique not null,
role varchar(10) not null,
registtime timestamp,
state int not null,
activecode varchar(100)
);
商品表
create table products(
id varchar(100) primary key not null ,
name varchar(40) unique not null,
price double not null,
category varchar(100) not null,
description varchar(255),
img varchar(100)
);
订单表
create table orders(
id varchar(100) primary key not null,
totalmoney double not null,
receiverinfo varchar(255) not null,
ordertime timestamp,
state int not null,
user_id int not null,
foreign key(user_id) references users(id)
);
考虑实体之间关系
用户与订单存在 一对多关系 :在多方添加一方主键作为外键
订单和商品存在 多对多关系 :创建第三张关系表,引用两方主键作为外键
create table orderitem(
order_id varchar(100) not null,
product_id varchar(100) not null,
buynum int not null,
money double not null,
foreign key(order_id) references orders(id),
foreign key(product_id) references products(id)
);
2、工程环境搭建
创建web project --- estore
导入哪些jar包 :数据层(mysql驱动、c3p0、dbutils)、业务层(java mail)、web层(fileupload、beantuils、jstl)
修改c3p0的配置文件
发布工程(配置虚拟主机):配置server.xml ,修改本地hosts文件
* C:\WINDOWS\system32\drivers\etc\hosts
* 如果虚拟主机被外界直接通过ip 访问 配置缺省虚拟主机
创建包结构(架构分层 JavaEE 经典三层架构 web层、业务层、数据层)
cn.itcast.estore.web --- web层
cn.itcast.estore.service --- 业务层
cn.itcast.estore.dao --- 数据层
cn.itcast.estore.domain --- 实体类
cn.itcast.estore.utils ---- 工具类
编写实体类 ---- DBUtils(数据表结构和类结构一致)
三、系统编码
功能一: 用户注册
客户端regist.jsp ---- web层 RegistServlet --- 业务层UserService --- 数据层UserDAO
* 验证码功能
* 引用EncodingFilter 处理全局乱码
* 发送激活邮件
功能二: 账户激活
用户点击邮件中链接 ---- 激活码传递服务器web层ActiveServlet ---- 业务层 ---- 数据层
功能三:用户登录
客户端login.jsp ---- web层 LoginServlet --- 业务层UserService --- 数据层UserDAO
* 正确显示用户已登录 显示是谁? 错误,提示用户:用户名密码错误,重写登录
* day9 记住用户名和密码功能 day17 自动登录
* 注销功能
在Session中存在 loginUser 登陆用户信息 ----- 添加权限认证功能
权限认证过滤器
在访问服务器端所有web资源之前,通过一个过滤器拦截访问,获得访问目标资源路径,判断是否具有相应权限,如果没有权限拦截请求,如果具有权限放行
URL级别权限控制,需要将所有web资源分不同url前缀存储 ----- 不够灵活
权限配置文件方式 对Estore进行权限控制
分析Estore商城系统功能 :未登录、登陆商城用户、登陆管理员
在src下新建两个文本文件 admin.txt user.txt ----- 将需要管理员权限访问路径写到admin.txt、将需要商城用户权限访问路径写到user.txt
* 好处维护很方便
* 错误友好页面 404.jsp 自动刷新跳转回主页 500.jsp 向用户显示友好错误信息
网络购物分析-java
最新推荐文章于 2020-11-27 07:59:55 发布