java web图书商城系统的需求分析及详细设计
图书商城
1. 功能分析
1、用户注册
2、用户登录
3、添加商品(CURD)
4、商品查看– 列表查询
5、商品详情页面
6、将商品添加购物车
7、查看购物车
8、修改购物车
9、生成订单
10、订单查看(取消)
11、在线支付
12.下载销售榜单
游客(未登录): 注册、登陆、商品查看
商城注册用户 : 商品查看、添加商品到购物车、购物车管理、生成订单、订单管理、在线支付
管理员 : 添加商品、商品管理、查看订单 、榜单查看(导出)
- 系统设计
1技术选型 (系统架构)
JSTL + JSP + Servlet + JavaBean + BeanUtils + FileUpload + JavaMail + DBUtils(JDBC) + C3P0 + MySQL + MyEclipse10+ Tomcat7.0 + JDK6 + Windows
MVC 模式
JavaEE 三层结构 web层 service层 dao层
DAO 模式
2数据库设计
系统存在以下实体:用户、商品、订单、购物车
购物车不放入数据库 (Session或者Cookie实现)
用户表
create table users (
id int primary key auto_increment,
username varchar(40),
password varchar(100),
nickname varchar(40),
email varchar(100),
role varchar(100) ,
state int ,
activecode varchar(100),
updatetime timestamp );
商品表
create table products(
id varchar(100) primary key ,
name varchar(40),
price double,
category varchar(40),
pnum int ,
imgurl varchar(100),
description varchar(255));
订单表
create table orders(
id varchar(100) primary key,
money double,
receiverinfo varchar(255),
paystate int,
ordertime timestamp,
user_id int ,
foreign key(user_id) references users(id)
);
用户与订单之间存在 一对多关系 : 在多方添加一方主键作为外键
订单和商品之间存在 多对多关系 : 创建第三张关系表,引入两张表主键作为外键 (联合主键)
订单项
create table orderitem(
order_id varchar(100),
product_id varchar(100),
buynum int ,
primary key(order_id,product_id),
foreign key(order_id) references orders(id),
foreign key(product_id) references products(id)
);
设置数据库环境
数据库 :create database estoresystem
3 工程环境搭建和网站部署
1) 导入jar包
导入mysql驱动 mysql driver / mysql-connector-java-5.0.8-bin.jar
导入c3p0 c3p0/c3p0-0.9.1.2.jar 将c3p0-config.xml 复制src下 将DataSourceUtils复制 cn.itcast.estore.utils —– 配置c3p0-config.xml数据库连接参数
导入dbutils apache commons\dbutils\commons-dbutils-1.4.jar
导入beanutils commons-beanutils-1.8.3.jar commons-logging-1.1.1.jar
导入fileupload commons-fileupload-1.2.1.jar commons-io-1.4.jar
导入javamail mail.jar
导入jstl jstl.jar standard.jar
2) 建立package结构 按照JavaEE 三层结构
cn.itcast.estore.web.servlet
cn.itcast.estore.web.filter
cn.itcast.estore.web.listener
cn.itcast.estore.service
cn.itcast.estore.dao
cn.itcast.estore.domain
cn.itcast.estore.utils
3) domain类编写
4) 工程发布
将bookEstore项目配置虚拟主机,以顶级域名方式进行发布
1) 将工程根目录 bookEstore目录 配置虚拟主机目录 —- 配置conf/server.xml
unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">
2) 将工程目录下WebRoot 目录,配置缺省web应用
<Host name="www.estore.com" appBase=" myeclipse下的工程路径"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">
3) 将www.estore.com 虚拟主机配置缺省虚拟主机 —– 能够用ip直接访问主机
4) 修改本机域名解析文件 hosts —- c:\windows\system32\drivers\etc
添加 127.0.0.1 www.bookEstore.com
- 功能实现
1用户注册
1、 功能一: 用户注册 (技术点:验证码技术 、激活邮件技术)
1) 一次性验证码
原理:在生成验证码Servlet程序中,将生成验证码保存Session中,用户提交验证码 与 保存在Session验证码进行比较,如果相同,请求合法
2) 注册表单 JS校验
考虑JS校验是否可以抽取成框架
3) 处理form乱码问题 —- 通用get post 乱码过滤器
4) 密码 MD5 加密
5) 激活邮件发送
6) 配置通用错误处理页面web.xml
500
/500.jsp
404
/404.jsp
500.jsp 显示错误的信息
404.jsp 自动刷新跳转回主页面
2用户登录
原理:用户输入正确用户名和密码,登陆成功,用户信息将会被保存Session对象中。 —— 记住用户名和密码 、自动登陆
1) 登陆表单中,添加记住用户名 和 自动登陆功能
2) 登陆过程中判断 账户是否激活
3) 在login.jsp 显示记住用户名
在username 的input项中添加 value=”${cookie.username.value}”
在勾选自动登陆 checkbox 添加
4) 登陆后注销功能
注销Session
3用户自动登录过滤器
自动登陆功能 对系统所有页面有效 (例如访问index.jsp list_product.jsp info_product.jsp 这些页面在访问时都将执行自动登陆 )
- 对于登陆相关页面不会执行自动登陆逻辑 (login.jsp 、LoginServlet 、InvalidateServlet )
1) 判断该请求页面是否需要自动登陆
2) 是否已经登陆
3) 是否含有自动登陆cookie
4) 自动登陆
5) 在LoginServlet 添加对于没有勾选记住用户名和自动登陆 处理代码 !!!!!!!
6) 在退出功能 InvalidateServlet 清除自动登陆信息
4商品添加
文件上传三个注意事项
1) input输入框 必须有name属性
2) 表单form 必须post提交方式
3) 设置form的enctype 为 multipart/form-data
表单提交时,校验分为两种 : 客户端校验 、服务器端校验 —— 只有服务器端校验才能确保数据准确
商品图片上传到服务器端后,保存在哪个目录 ??? 必须直接在WebRoot下及其除WEB-INF、META-INF 子目录外
一般情况下,一张表对应Domain类 — DAO类 —- Service类
5商品列表查看
列表中显示原图,因为原图比较大,页面加载非常缓慢 ,页面布局不会很美观 —————- 缩略图
- Java中通过图形界面技术,生成小图
在Product类中添加 getImgurl_s方法,用来获取缩略图路径
6商品详细信息查看
通过在列表中点击 商品图片或者商品名称 进入详情查看页面
7添加商品到购物车
购物车对象,不保存在数据库中,使用Session来保存用户购物车数据
保存购物车对象 Map
java web图书商城系统的需求分析及详细设计相关推荐
- Ssh+Mysql实现的Java Web图书商城
此篇给大家推荐一款基于ssh+mysql实现的图书商城管理系统 系统完成了前台用户注册登录.图书查看.添加购物车.下单购买等功能 后台管理员管理图书.订单,生成销售统计图表,批量导出图书 运行环境: ...
- java web服装商城系统
基于java web jsp servlet技术开发的服装商城系统 数据库使用mysql
- java web图书借阅系统
售价:600RMB. 这个系统是从码云上download下来的,原来的项目是有问题的,在这个基础上修改的功能.框架是SpringBoot+layui来做的.代码的注释也写的很清楚,很适合java的初学 ...
- java基于springboot+vue+elementui的网上图书商城系统 前后端分离
随着时代的发展,不论是学习还是生活中,图书已经成为人们生活中必不很少的一个组成.图书是知识的载体,他是人类智慧结晶的一个体现.所以人们在现代的生活中,方方面面都离不开图书.随着信息化技术的发展,通过互 ...
- 关于web服务器性能书籍,图书商城系统的Web服务器性能优化研究与实现
摘要: 随着互联网技术的不断发展,特别是电子商务的不断发展,网上购物的需求也在不断的增加.根据<2017-2022年中国电子商务市场运行态势及投资战略研究报告>中指出2015年中国电子商务 ...
- Java项目:JavaWeb实现网上图书商城系统
作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家 Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-SC-010 开发工具:IDEA / ECL ...
- 基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui)
基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥ ...
- javaweb JAVA JSP图书销售系统JSP网上书店商城JSP购物系统JSP网上书店JSP图书在线销售系统JSP图书商城jsp二手图书销售系统
javaweb JAVA JSP图书销售系统JSP网上书店商城JSP购物系统JSP网上书店JSP图书在线销售系统JSP图书商城jsp二手图书销售系统 开发语言:Java 开发工具:Myeclispe ...
- 基于java网上图书销售系统的设计与实现(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 1引言 随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站.基于Inter ...
最新文章
- 引入外部css_css
- 需求:整个网站不能出现以下两个链接。思路:检索到网站中凡是出现该链接的都让它的href值为空...
- 去除桌面图标蓝底的方法步骤
- 【caffe-Windows】cifar实例编译之model的使用
- linux vfs open函数,Linux VFS中open系统调用实现原理
- HDU 1233 还是畅通工程(最小生成树)
- 创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法
- [转]一道受用终身的测试题
- idea+SpringBoot+Mybatis+Mysql环境搭建
- 财务与IIT的发展正在质变
- DllMain加载其他DLL造成的死锁问题及其解决办法
- java遍历map集合_Java中遍历Map集合方式
- 有没有一种软件,可以输入乐谱就能自动演奏的?
- iOS crash dSYM
- 用Python爬取东方财富网上市公司财务报表
- 【Pyautogui学习】屏幕坐标、鼠标滚动
- 兜了一圈,发现想要的APK在这里有
- 低配置享受3D立体游戏 手把手教你设置
- Cisco Packet Tracer 简介和安装
- 如果你不甘心CRUD,那需要看这篇设计模式!|原创
热门文章
- 安卓手机如何查看WIFI密码
- web学习 -- w3c dom标准
- 上海交大工科试验班计算机科学与技术,【专业分流】上海交通大学关于2019级工科平台和自然科学试验班专业分流结果公示的通知...
- 鼠标滚轮事件mousewheel和DOMMouseScroll
- 如何把gif做成html,gif怎么倒放
- 四目大视场四目夜视镜 --TFN TD401 大视场头盔四目夜视仪 夜视镜 无需转头微光夜视系统 四目四管
- JAVA JDK jdk 安装 下载后双击没反应
- php.bak是什么,bak文件是什么
- 网络安全现状:揭秘白帽黑客的真实收入
- Python 实现 PTA 平台 基础编程题目集