网络购物分析-java
2016-06-21 23:58
429 查看
网络购物系统功能 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 向用户显示友好错误信息
相关文章推荐
- nginx1.6.2+tomcat8.0.36 配置https
- 12-227 网络客户端开发(TCP)
- scapyd scrapyd-client scrapy使用http调度spider.md
- AngularJs练习Demo9 Http
- 利用FastJson来解析网络数据
- HTTP协议/RTSP协议/RTMP协议的区别
- HTTP与HTTPS的区别
- tcp总结
- linux网络编程-----实现并发访问网站------
- 使用HOG特征+BP神经网络进行车标识别
- 网络编程常见类型定义
- TCP/IP协议
- 【网络编程5】Java与Python套接字Socket通信的例子
- C#检测本地网络状态
- 详解https是如何确保安全的?
- 使用Http-only Cookie来防止XSS攻击
- HTTP学习笔记——报文格式
- TCP三次握手(建立连接)/四次挥手(关闭连接)
- 深入理解nginx chap3 开发一个简单的HTTP模块
- OkHttp使用(二)加载图片及下载文件