JSP、Servlet+MySQL线上网上图书商城书城书店系统平台课程设计JQuery

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 传智播客网上图书商城是典型的网上购物实践中最为普遍的电子商务企业对客户(B2C)模式,主要包括会员注册、订单管理、购物车、搜索、支付等基本功能。此外,本系统也将实现在线图书销售系统的后端管理,包括图书的添加、订单的处理等功能。本系统完全基于JSP技术,在系统的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式,从而减少系统模块间的偶合,力求做到系统的稳定性、可重用性和可扩充性。

传智播客网上图书商城是典型的网上购物实践中最为普遍的电子商务企业对客户(B2C)模式,主要包括会员注册、订单管理、购物车、搜索、支付等基本功能。此外,本系统也将实现在线图书销售系统的后端管理,包括图书的添加、订单的处理等功能。本系统完全基于JSP技术,在系统的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式,从而减少系统模块间的偶合,力求做到系统的稳定性、可重用性和可扩充性。


主要功能如下:

(1) 前台(客户购买)部分:

①用户管理:注册会员、登录、激活、退出、修改密码;

②分类显示:显示所有1级和2级分类;

③图书显示:按分类查询图书、通过关键字搜索图书、高级搜索图书、查看某本图书的详细等;

④购物车管理:向购物车中添加图书、修改购物车中图书数量、删除购物车中图书、我的购物车;

⑤订单管理:通过购物车中图书生成订单、查看我的订单、查看某个订单的详细、订单支付、确认收货、取消未付款订单。

(2)后台(管理员管理)部分:

①管理员:管理员登录;

②分类管理:查看所有分类、添加1级分类、添加2级分类、修改1级分类、修改2级分类、删除1级分类、删除2级分类;

③图书管理:按分类搜索图书、高级搜索图书、添加新图书、查看图书详细信息、编辑图书、删除图书;

④订单管理:按状态搜索订单、查看订单详细信息、取消订单、发货;


系统功能模块设计

1565945a0e6018b190d52ec412fc833.png


1bb213d7f85f772aa6e7b3f2b17bfa7.png


数据库设计(详见下载)

b1309bba3ce6f64acab462065e6978d.png


e60ea76738d1e8ebec455cd1f94b4d1.png


前台设计


首页设计

首页模块包括3个主要的部分,采用内嵌框架技术。位置分别为上、左、中。


4b244e02c06e1b8c0dff379e02a4cdb.png


上部的实现

上部包含两大部分内容:

网站标题;

菜单。

菜单部分就是一系列的超链接,用户在未登录时看到的是“登录”和“注册”链接;在登录后看到的是“我的购物车”、“我的订单”、“修改密码”、“退出”超链接,以及当前用户名称。


左部的实现

左部显示所有分类,包含所有1级、2级分类。左部使用了Javascript的Q6Menu组件来完成显示所有分类。当用户点击某个1级分类名称时会展示当前1级分类的所有2级分类。


中部的实现

中部是网站的骨干,点击任何超链接都会在中部显示。默认只是使用纯文本显示欢迎信息。


用户模块

注册用户是构成网站主体的一个重要组成部分,网站设置注册用户的目的之一在于方便网站信息的管理。

用户注册和登录

70ad70f8d197733ba7964eb9f050f6d.png


1e0208ebd4445c3b916c48d7da8c004.png

修改当前用户密码


图书模块

图书列表

在首页左部点击某个2级分类,会在首页的中部显示图书列表页面。图书列表使用分页显示。


b6edc2113701b979572c3ea7109ee83.png

图书详情

5bb21386ed8b30cde1fbb622786922a.png


高级搜索

12367c84899fd453f624eefd10b84e7.png

cf63a2a7d12177906202e6c90e2d519.png

购物车

购物车使用数据库来保存数据,也就是说添加到购物车中的图书,不会因为关闭浏览器,或者是关闭电脑而消失。而且修改数量,是通过异步请求来操作数据库的。

添加图书到购物车

在图书详细页面,给出数量,然后点击“购买”就可以把图书添加到购物车中,并且会到达购物车列表页面。


df485418ec3f889a3c7a06019aa37d7.png

订单模块

对订单的操作,对应数据库中的两张表,即订单表和订单条目表(t_order和t_orderitem)。而且订单模块的功能比较多:

生成订单:通过购物车中勾选的条目来生成订单;

我的订单:显示当前用户的所有订单,每个订单所包含的订单条目也需要显示;

订单支付:使用易宝的第三方支付平台完成,对“在线支付”的理解也是一个挑战;

订单详细:显示指定的某个订单;

订单取消和订单的确认收货:这两个功能都是对订单状态的修改。

选中条目,准备生成订单

在购物车列表页面中,勾选要购买的条目,然后点击“结算”按钮,完成选中条目,准备生成订单,这会到达订单准备页面。

406f042d8eabd4efc49291dbba2b44d.png

生成订单

在订单准备页面,输入收货地址,然后点击“提交订单”按钮,完成下单(生成订单)。这时会到达“下单成功”页面。

fccba5b05206a3e69a1e9906a4fc4fe.png

订单列表

在首页上部点击“我的订单”链接,就会到达订单列表页面。该页面会显示当前用户的所有订单信息。该页使用分页显示订单!

7a8d33411efa3e7b06472515cee6ca4.png

支付页面

在“下单成功”页面,或者“订单列表”页面中点击“支付”按钮都可以到达“支付”页面。在“支付”页面中选择银行,后点击下一步就会跳转到银行的支付页面了。这里使用的是“易宝”第三方支付平台!

7050dc717ebcb437906c2027f85dff4.png

订单详细页面

在订单列表页面中,点击某个订单的“查看”、“取消”、“确认收货”都会到达“订单详细”页面。其中点击“查看”到达“订单详细”页面后没有按钮;点击“取消”到达“订单详细”页面有“取消按钮”按钮;点击“确认收货”按钮到达“订单详细”页面有“确认收货”按钮。

4afa0e82f0ff0a1f2260c1426b4216a.png9e99b17451d1417c5e13828bdb2826c.png


后台设计


仅展示部分,其余详见下载。


5f07aaa9d3cbe800c3e4ebe77ba6731.png


2e1d6e87bdbee8495fa94389bbf46cd.png



7c116465e1bf27eb9fa8b65566e63c5.png

27fa2e84a781c77598def8e06a31781.png

8acc0506dc3fe3454abb16f5bb44b08.png

d6c195e8d615fa952344fd6fd2e2730.png

以下部分代码请忽略


package cn.itcast.goods.book.domain;
import cn.itcast.goods.category.domain.Category;
public class Book {
  private String bid;//主键
  private String bname;//图名
  private String author;//作者
  private double price;//定价
  private double currPrice;//当前价
  private double discount;//折扣
  private String press;//出版社
  private String publishtime;//出版时间
  private int edition;//版次
  private int pageNum;//页数
  private int wordNum;//字数
  private String printtime;//刷新时间
  private int booksize;//开本
  private String paper;//纸质
  private Category category;//所属分类
  private String image_w;//大图路径
  private String image_b;//小图路径
  public String getBid() {
  return bid;
  }
  public void setBid(String bid) {
  this.bid = bid;
  }
  public String getBname() {
  return bname;
  }
  public void setBname(String bname) {
  this.bname = bname;
  }
  public String getAuthor() {
  return author;
  }
  public void setAuthor(String author) {
  this.author = author;
  }
  public double getPrice() {
  return price;
  }
  public void setPrice(double price) {
  this.price = price;
  }
  public double getCurrPrice() {
  return currPrice;
  }
  public void setCurrPrice(double currPrice) {
  this.currPrice = currPrice;
  }
  public double getDiscount() {
  return discount;
  }
  public void setDiscount(double discount) {
  this.discount = discount;
  }
  public String getPress() {
  return press;
  }
  public void setPress(String press) {
  this.press = press;
  }
  public String getPublishtime() {
  return publishtime;
  }
  public void setPublishtime(String publishtime) {
  this.publishtime = publishtime;
  }
  public int getEdition() {
  return edition;
  }
  public void setEdition(int edition) {
  this.edition = edition;
  }
  public int getPageNum() {
  return pageNum;
  }
  public void setPageNum(int pageNum) {
  this.pageNum = pageNum;
  }
  public int getWordNum() {
  return wordNum;
  }
  public void setWordNum(int wordNum) {
  this.wordNum = wordNum;
  }
  public String getPrinttime() {
  return printtime;
  }
  public void setPrinttime(String printtime) {
  this.printtime = printtime;
  }
  public int getBooksize() {
  return booksize;
  }
  public void setBooksize(int booksize) {
  this.booksize = booksize;
  }
  public String getPaper() {
  return paper;
  }
  public void setPaper(String paper) {
  this.paper = paper;
  }
  public Category getCategory() {
  return category;
  }
  public void setCategory(Category category) {
  this.category = category;
  }
  public String getImage_w() {
  return image_w;
  }
  public void setImage_w(String image_w) {
  this.image_w = image_w;
  }
  public String getImage_b() {
  return image_b;
  }
  public void setImage_b(String image_b) {
  this.image_b = image_b;
  }
}


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
监控 数据可视化 关系型数据库
微服务架构+Java+Spring Cloud +UniApp +MySql智慧工地系统源码
项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。
56 6
|
8天前
|
存储 SQL 关系型数据库
MySQL 系统文件你了解吗
MySQL 系统文件你了解吗
21 0
|
1月前
|
JavaScript 关系型数据库 MySQL
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
|
1月前
|
Java 关系型数据库 MySQL
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
|
1月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
|
2天前
|
前端开发 关系型数据库 MySQL
基于python+mysql的宠物领养网站系统
基于python+mysql的宠物领养网站系统
16 2
|
6天前
|
关系型数据库 MySQL Linux
MySQL 数据库安装详解(linux系统和windows系统)
MySQL 数据库是一种广泛使用的开源关系数据库管理系统。在 Linux 和 Windows 系统上安装 MySQL 数据库的步骤略有不同。
33 0
|
8天前
|
Java
jsp页面中使用jstl标签报错:javax.servlet.jsp.JspTagException
jsp页面中使用jstl标签报错:javax.servlet.jsp.JspTagException
7 0
|
21天前
|
关系型数据库 MySQL 数据库
MySQL技能完整学习列表——1、数据库基础概念——2、数据库管理系统(DBMS)——3、数据模型(Data Model)
MySQL技能完整学习列表——1、数据库基础概念——2、数据库管理系统(DBMS)——3、数据模型(Data Model)
14 0
|
21天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8.0绿色版本——最纯净的安装体验(免去卸载不掉只能重做系统的‘囧‘境)
MySQL8.0绿色版本——最纯净的安装体验(免去卸载不掉只能重做系统的‘囧‘境)
56 0

相关产品

  • 云迁移中心