博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网上书城+源码
阅读量:6325 次
发布时间:2019-06-22

本文共 2044 字,大约阅读时间需要 6 分钟。

  经过一段时间的Java Web基础知识的学习,为了将整个知识点串联起来,自己写了一个简单的网上书城小项目。整个项目架构比较简单,适合像我这种Java Web初学者来学习参考,项目名称web_bookstore,是基于servlet/jsp和html/css/js实现的。

  整个工程代码已push到Git,详见地址:

整体架构

  该网上书城项目分为前台和后台两大部分,前台部分包括会员注册、会员登录、购买书籍、添加购物车、结算等功能,后台部分包括查看会员、查看商品、添加商品等功能。有些功能模块还未添加,后续需要的话可以再添加上去。整体架构框图如下所示:

代码流程梳理

  通过看整体架构框图可知,整个项目各个模块之间关系还是挺清晰的,下面先来一张web_bookstore工程整体图:

src源码包说明:

  • admin包:主要是一些管理员有关的Servlet控制逻辑
  • dao包:数据表类和数据表操作类
  • demo包:自己写的一些测试用例
  • service包:会员相关的一些Servlet控制逻辑
  • util包:一些脚手架程序
  • web.filter:一些拦截器,比如控制网页编码等

WebContent文件说明:

  • admin:管理员相关jsp页面
  • client:会员相关jsp页面
  • css:全局css文件
  • img/picture:存放一些图片
  • js:一些js程序
  • util:存放一些页头什么的

  工程整体大致就是这些,下面分模块大致梳理一下流程。

数据表

  一般项目首先会设计数据表,那咱们就先说说数据表创建^_^。整个项目使用了5个数据表,分别是用户表、商品表、订单表、订单项表(订单中单个商品项信息)、消息表。具体的表结构和创建表SQL语句见源码中的文件。下面是整个个数据库的图示:

会员注册

  会员需要先注册后才能使用网上书城添加购物车和结算等功能,注意:会员注册后需要管理员激活该会员后才能登录。注册界面如下所示:

会员登录

  会员注册成功后,就可以直接登陆到网上书城了,登录界面如下所示。注意,如果是管理员登录的话,会跳转到后台管理员主页;如果是普通会员的话就会跳到会员主页。

  会员成功登陆后,服务端会生成对应的Cookie,并写入请求响应中,Cookie格式为user=user_id形式,user_id为用户注册后生成的一个对应id。

  接着就会跳转到商品主页上去,商品主页页面如下所示,目前商品表中只有2件商品:(

购物车流程

  在商品下面点击加入购物车后就会将该商品添加到购物车中。

  注意:购物车是以Session形式保存在服务端的,因为网上书城是多用户登录的,如何保证多个用户的Session不冲突呢,也就是购物车是如何实现的呢?一个用户的购物车在服务端对应一个Session,该Session对应的属性名字为cart+user_id,user_id也就是用户登录成功写入到Cookie的那个user值,因为cart+user_id是和用户一一对应的,所以这样就保证了所有用户的Session不会冲突,对应的源码在AddCarServlet逻辑中,如下所示:

// 先判断用户是否登录Cookie cookie = ServletUtils.getCookie(request, "user");if (cookie == null) {    response.getWriter().println("抱歉,你当前还未登录,2秒后调到登录页面");    response.addHeader("refresh", "2;url=" + request.getContextPath() + "/client/login.jsp");    return;}// 获取购物车对象HttpSession session = request.getSession();Map
cart = (Map
) session.getAttribute("cart" + cookie.getValue());if (cart == null) { cart = new HashMap
();}

商品结算流程

  在购物车页面点击现在结账后,就会跳转到提交订单页面中了。

  填写收货地址、收货人、电话等信息后,点击提交订单,就到了计算页面了,然后输入支付宝账号和密码后,商品购买流程就结束了。

 

管理员流程

  在管理员页面如果填写的是管理员账号的话,就直接到管理员管理页面了,整图页面如下所示:

  目前管理员功能有限,只有添加商品、查看所有商品、查看所有用户等功能,后续可以添加上去,这里对照着源码大致就明白了,就不具体说明了。

  到此,整体项目流程已经梳理完毕,具体请点击查看源码。

参考连接

  1、

  2、

  3、

转载地址:http://yjmaa.baihongyu.com/

你可能感兴趣的文章
win7系统设置电脑不待机状态的操作方法
查看>>
nginx+php安装配置
查看>>
LAMP+Centos6.5上安装zabbix
查看>>
android判断网络连接状态的三种方法
查看>>
ZOJ Monthly, March 2013 解题报告
查看>>
LaTex表格 Itemize&&enumerate
查看>>
Spring Boot中@OneToMany与@ManyToOne几个需要注意的问题
查看>>
文件传输协议之FTP
查看>>
Openstack 安装部署指南翻译系列 之 Glance服务安装(Image)
查看>>
Java 使用POI实现execl的导入导出数据实践
查看>>
Unity3D游戏开发之伤害数值显示
查看>>
如何在Linux上搭建一个基于Web的轻型监控系统
查看>>
linux基础命令使用
查看>>
zabbix简单检测
查看>>
other模块的网络请求业务封装工具类
查看>>
Windows进程崩溃问题定位方法
查看>>
程序员如何让自己 Be Cloud Native - 配置篇
查看>>
SQL Server各个版本之间的差异
查看>>
如何拆笔记本键盘(组图)
查看>>
lua install
查看>>