图书商城
1. 功能分析

1、用户注册

2、用户登录

3、添加商品(CURD)

4、商品查看– 列表查询

5、商品详情页面

6、将商品添加购物车

7、查看购物车

8、修改购物车

9、生成订单

10、订单查看(取消)

11、在线支付

12.下载销售榜单

游客(未登录): 注册、登陆、商品查看

商城注册用户 : 商品查看、添加商品到购物车、购物车管理、生成订单、订单管理、在线支付

管理员 : 添加商品、商品管理、查看订单 、榜单查看(导出)

  1. 系统设计

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、 功能一: 用户注册 (技术点:验证码技术 、激活邮件技术)

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图书商城系统的需求分析及详细设计相关推荐

  1. Ssh+Mysql实现的Java Web图书商城

    此篇给大家推荐一款基于ssh+mysql实现的图书商城管理系统 系统完成了前台用户注册登录.图书查看.添加购物车.下单购买等功能 后台管理员管理图书.订单,生成销售统计图表,批量导出图书 运行环境: ...

  2. java web服装商城系统

    基于java web jsp servlet技术开发的服装商城系统 数据库使用mysql

  3. java web图书借阅系统

    售价:600RMB. 这个系统是从码云上download下来的,原来的项目是有问题的,在这个基础上修改的功能.框架是SpringBoot+layui来做的.代码的注释也写的很清楚,很适合java的初学 ...

  4. java基于springboot+vue+elementui的网上图书商城系统 前后端分离

    随着时代的发展,不论是学习还是生活中,图书已经成为人们生活中必不很少的一个组成.图书是知识的载体,他是人类智慧结晶的一个体现.所以人们在现代的生活中,方方面面都离不开图书.随着信息化技术的发展,通过互 ...

  5. 关于web服务器性能书籍,图书商城系统的Web服务器性能优化研究与实现

    摘要: 随着互联网技术的不断发展,特别是电子商务的不断发展,网上购物的需求也在不断的增加.根据<2017-2022年中国电子商务市场运行态势及投资战略研究报告>中指出2015年中国电子商务 ...

  6. Java项目:JavaWeb实现网上图书商城系统

    作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家  Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-SC-010 开发工具:IDEA / ECL ...

  7. 基于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≥ ...

  8. javaweb JAVA JSP图书销售系统JSP网上书店商城JSP购物系统JSP网上书店JSP图书在线销售系统JSP图书商城jsp二手图书销售系统

    javaweb JAVA JSP图书销售系统JSP网上书店商城JSP购物系统JSP网上书店JSP图书在线销售系统JSP图书商城jsp二手图书销售系统 开发语言:Java 开发工具:Myeclispe ...

  9. 基于java网上图书销售系统的设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 1引言  随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站.基于Inter ...

最新文章

  1. 引入外部css_css
  2. 需求:整个网站不能出现以下两个链接。思路:检索到网站中凡是出现该链接的都让它的href值为空...
  3. 去除桌面图标蓝底的方法步骤
  4. 【caffe-Windows】cifar实例编译之model的使用
  5. linux vfs open函数,Linux VFS中open系统调用实现原理
  6. HDU 1233 还是畅通工程(最小生成树)
  7. 创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法
  8. [转]一道受用终身的测试题
  9. idea+SpringBoot+Mybatis+Mysql环境搭建
  10. 财务与IIT的发展正在质变
  11. DllMain加载其他DLL造成的死锁问题及其解决办法
  12. java遍历map集合_Java中遍历Map集合方式
  13. 有没有一种软件,可以输入乐谱就能自动演奏的?
  14. iOS crash dSYM
  15. 用Python爬取东方财富网上市公司财务报表
  16. 【Pyautogui学习】屏幕坐标、鼠标滚动
  17. 兜了一圈,发现想要的APK在这里有
  18. 低配置享受3D立体游戏 手把手教你设置
  19. Cisco Packet Tracer 简介和安装
  20. 如果你不甘心CRUD,那需要看这篇设计模式!|原创

热门文章

  1. 安卓手机如何查看WIFI密码
  2. web学习 -- w3c dom标准
  3. 上海交大工科试验班计算机科学与技术,【专业分流】上海交通大学关于2019级工科平台和自然科学试验班专业分流结果公示的通知...
  4. 鼠标滚轮事件mousewheel和DOMMouseScroll
  5. 如何把gif做成html,gif怎么倒放
  6. 四目大视场四目夜视镜 --TFN TD401 大视场头盔四目夜视仪 夜视镜 无需转头微光夜视系统 四目四管
  7. JAVA JDK jdk 安装 下载后双击没反应
  8. php.bak是什么,bak文件是什么
  9. 网络安全现状:揭秘白帽黑客的真实收入
  10. Python 实现 PTA 平台 基础编程题目集