【2023】Bootstrap+JSP+MySQL搭建电商网站

213 阅读15分钟

源码下载:https://download.csdn.net/download/m0_56170277/85632181

页面展示

首页
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目结构图

项目结构图

1、index.jsp(首页)

页面主要包括以下内容:
①导航栏;
②商城LOGO;
③搜索商品框;
④购物车按钮;
⑤商品分类;
⑥轮播图;
⑦公告板;
⑧按分类的随机商品推荐。
内容功能介绍:
①导航栏:在整个商城网站中使用的导航栏,点击导航栏上的链接可跳转至对应页面,导航栏在用户登录与未登录时呈现两种状态
导航栏中有两个下拉菜单,分别对应用户与商城,其中用户部分下拉菜单需要登录后才出现。
其中首页为跳转至index.jsp(本页面),个人中心为跳转至personal.jsp,我的订单为跳转至account.jsp,我的购物车为跳转至shopcart.jsp,意见反馈为跳转至问卷星页面。
②商品LOGO:LOGO。
③搜索商品框:输入内容可根据商品名进行“模糊查询”,若没有输入内容直接点击,则显示所有商品。具体功能实现见shopsearch.jsp介绍。
④购物车按钮:点击按钮可跳转至用户个人购物车,购物车按钮上方有红色数量标记显示目前登录的用户已加入购物车的商品类别数量。若用户未登录,则显示0。
1.数量标记使用SELECT条件查询当前用户名的用户已加入购物车的商品类别数量,其中类别使用GROUP BY做了分组处理。
2.将结果集设置为滚动结果集,并滚动至最后一行,获取该行的行号。
⑤商品分类:本商城商品共分为四类,点击每一个分类,可以查看该分类下所有商品信息。功能实现见shoplist.jsp。
⑥轮播图:轮播图。
⑦公告板:显示默认用户和默认管理员账号密码。
⑧按分类的随机商品推荐:对四个分类的商品进行随机推荐,每次刷新后或重新进入本页面,推荐的商品随机变化。
1.初始化哈希集合、列表、随机数方法;
2.使用SELECT条件查询在数据库中分别查询四个类别的商品id,存入列表,随机数的范围限定为列表中的数字;
3.使用循环将随机的商品id存入集合,当集合大小为4(预设为4)时,结束循环;
4.将集合获取到的商品id使用SELECT查询详细信息,将结果集设置为滚动结果集,并显示出。

2、login.jsp(登录页面)

页面主要包括以下内容:
①登录功能;
②注册功能。
内容功能介绍:
①登录功能:整个登录部分为一张表单,用户在相应表单输入账号密码,信息提交至login2.jsp,若密码正确则跳转至首页index.jsp(管理员用户跳转至shopadmin.jsp),若密码不正确则在本页给出提示信息。具体功能实现见login2.jsp。
②注册功能:包含一个注册按钮,点击按钮跳转至register.jsp。具体功能实现见register.jsp和register2.jsp。

3、login2.jsp

本页为登陆页面login.jsp的功能实现。
实现功能如下:
①根据用户名和密码进行用户登录;
②根据用户权限跳转用户登录成功后的页面;
③将用户登陆成功的信息储存至session。
功能介绍:
①根据用户名和密码进行用户登录:
1.接收来自login.jsp提交的用户名、密码;
2.在数据库表user中查询对应的用户名密码是否正确
3.若不正确则重定向回login.jsp,并传递参数alert=loginfail,login.jsp接收alert并显示登陆失败的信息;
4.若用户名密码正确,则判断是否用户是否具有管理员权限(user表中action字段是否为1);
②根据用户权限跳转用户登录成功后的页面:
1.若用户具有管理员权限,则跳转至shopadmin.jsp
2.若用户无管理员权限,则跳转至index.jsp。在相应页面都传递参数alert=loginsuccess,页面显示登陆成功的信息。
③将用户登陆成功的信息储存至session:
1.用户登录成功后,将用户名、密码储存至session。
2.设置登陆状态参数loginStatus,并储存至session。

4.register.jsp

页面主要包括以下内容:
①注册部分;
②登陆部分。
内容功能介绍:
①注册部分:注册部分为一张表单,用户在输入框中填写“用户名”、“密码”、“电话”、“邮箱”并勾选同意服务条款后,点击立即注册,表单将被提交至register2.jsp,交由register2.jsp完成注册。具体功能实现见register2.jsp。若用户填写的信息符合条件,则跳转至登录页面并给出提示信息;若用户名已存在,则注册失败并在本页给出提示信息;若用户填写字段不完整,则在表单中给出提示信息。
②登陆部分:跳转至登录界面login.jsp,具体功能实现见login.jsp和login2.jsp。

5、register2.jsp

本页为登陆页面register.jsp的功能实现。
实现功能如下:
①判断用户名是否存在;
②注册功能实现。
功能介绍:
①判断用户名是否存在:
1.接收来自register.jsp用户提交的表单信息;
2.将其中的username字段在数据库中使用SQL语句做条件查询并获得结果集;
3.若结果集为空则执行注册功能;
4.若不为空则跳转register.jsp并传递参数alert=usernamerepeat,register.jsp接收参数并提示信息。
②注册功能实现:
1.将用户提交的数据插入数据库,插入数据库的字段包括注册表单信息与action用户权限、regtime用户注册时间,用户权限与注册时间分别使用数据库的默认值,不需要接收参数。
2.跳转至login.jsp并传递参数alert=registersuccess,目标页面给出相应信息提示。

6、shoplist.jsp

页面主要包括以下内容与功能:
①目标分类的所有商品展示;
②搜索框,在当前页搜索,结果内容仅出现当前页商品;
③进入展示商品的详情页。
内容功能介绍:
①目标分类的所有商品展示:
1.根据分类字段(商品的shopcate字段)在数据库中做条件查询;
2.使用循环将结果集中的内容展示,每个展示板块为一个表单。
②搜索框,在当前页搜索,结果内容仅出现当前页商品:
1.输入商品名,在本页面(商品类别)查询是否有满足的商品,并跳转至查询结果页shopsearch.jsp,具体功能实现见shopsearch.jsp。
③进入展示商品的详情页:
1.由于每个展示板块为一个表单,表单中预先存好了商品信息,点击立即选购会跳转至对应商品详情页。

7、shopsearch.jsp

页面主要包括以下内容与功能:
①显示用户搜索的商品;
②自定义最高价、最低价,对搜索结果展示;
③分页显示。
内容功能介绍:
①显示用户搜索的商品:
1.对用户在首页或商品分类页输入内容进行条件查询;
2.部分代码如下。
②自定义最高价、最低价,对搜索结果展示:
1.在用户输入了内容的基础上进行联合查询;
2.预先获取数据库中商品的最高价、最低价,在用户没有输入价格条件时作补充,避免程序异常;
3.获取数据库最高价最低价代码如下。
③分页显示:
1.接收用户输入的商品名、最高价、最低价等条件,查询数据库中商品数量;
2.定义当前页、商品总数、总页码等信息,最大页数根据商品总数产生;
3.预设每页展示6件商品,本页第一个商品=(当前页数-1) * 6;
4.页码部分使用表单实现,并传递指定页的“当前页”参数,上一页与下一页按钮传递当前页±1的“当前页”参数。
5.判断当前是否处于第一页或最后一页,若处于第一页则上一页不能点击,最后一页同理。

8、shopdetial.jsp

用户点击立即选购可跳转至商品详情页,页面主要包括以下内容与功能:
①加入购物车;
②商品信息;
③评论及评分;
④所有评论;
⑤更多商品推荐。
内容功能介绍:
①加入购物车:
1.加入购物车功能板块为表单,表单中预先存储了指定商品的信息,用户点击加入购物车按钮将储存的信息以及用户名加入购物车cart表;
2.加入购物车时,用户可以选择商品数量,商品数量选择的“+”“-”号按钮使用jQuery实现;
3.若用户输入商品数量不符合规范(负数、不是数字、小数等),将不能加入购物车并提示信息。加入购物车具体功能实现见shopcart2.jsp
②商品信息:
1.商品信息部分是在数据库中查询本商品并遍历结果集。
③评论及评分:
1.用户在购买商品后可对商品评论;
2.用户需要输入评论内容,若评论为空则给出信息提示;
3.评论可选择评分,在所有评论中将展示用户名、评论时间、评分、内容。评分部分的五角星★点击发生变化利用jQuery实现;
4.在数据库comment表中查询当前商品的所有用户评论,统计当前商品的平均评分、评论人数。
④所有评论:
1.在数据库comment表中查询当前商品的所有用户评论,并展示;
⑤更多商品推荐:
1.与首页index.jsp中的随机推荐相同,此处将范围扩大至所有商品。

9、shopcomment.jsp

本页为登陆页面shopdetial.jsp的功能实现,没有实体展示页面。
实现功能如下:
①判断用户名是否填写评论;
②判断用户是否购买商品;
③将用户评论插入数据库。
功能介绍:
①判断用户名是否填写评论:
1.接收来自shopdetial.jsp的参数并判断是否为空;
2.若为空,则重定向回shopdetial.jsp并传递参数alert=commentempty,在shopdetial.jsp给出提示信息。
②判断用户是否购买商品:
1.接收用户名,商品id;
2.在数据库order表中查询是否有相应的信息;
3.若有信息,则在数据库中插入用户评论,并给出提示信息;
4.若没有信息,则跳转回shopdetial.jsp并传递参数alert=commentfail。
③将用户评论插入数据库:
1.接收来自shopdetial.jsp用户传递的参数;
2.将用户名、商品id、评论内容、评分、评论时间插入数据库comment表。

10、shopcart.jsp

页面主要包括以下内容与功能:
①对用户加入购物车的商品汇总统计;
②修改购物车商品数量;
③删除购物车商品;
④购买商品;
⑤点击结算;
内容功能介绍:
①对用户加入购物车的商品汇总统计:
1.通过当前用户名,在数据库中连接购物车表与商品表,对用户所加入购物车的商品进行汇总展示,具体数据库代码如下:
SELECT username, cart.shopid, SUM(buynum), shop.shopname, shop.shopcate, shop.shopprice, shopinfo, shop.shoppic FROM cart LEFT JOIN shop ON cart.shopid = shop.shopid WHERE cart.username = ? GROUP BY cart.shopid
2.当用户购物车为空时,给出提示;
3.当用户购物车有商品时,展示商品。
②修改购物车商品数量:
1.对于单独商品,增加数量、减少数量以及删除按钮都是单独的表单提交按钮,此处的增加减少商品数量按钮实现方式与详情页不同;
2.增加减少商品数量按钮点击后请求shopcart3.jsp;
3.点击一次“+”,商品数量+1;
4.点击一次“-”,商品数量-1,若商品只有1个,将删除购物车中的商品。
③删除购物车商品:点击删除按钮,删除cart表中该用户的目标商品。
④购买商品:点击购买按钮,删除cart表中该用户的目标商品,并将该商品信息加入order表。
⑤点击结算:
1.点击结算按钮弹出结算界面;
2.点击确认订单将删除购物车表cart中的商品,并加入订单表order;
3.跳转至订单页面account.jsp,并给出提示信息。

11、shopcart2.jsp

本页为登陆页面shopdetial.jsp的功能实现,没有实体展示页面。
实现功能如下:
①判断用户输入的商品数量是否合法;
②将商品加入购物车。
功能介绍:
①判断用户输入的商品数量是否合法:
1.接收来自shopdetial.jsp用户传递的商品数量参数;
2.对商品数量作try-catch与非负判断;
3.若数量合法,则将商品加入购物车;
4.若数量不合法,则返回shopdetial.jsp并给出提示信息。
②将商品加入购物车:
1.接收来自shopdetial.jsp用户传递的商品数量参数;
2.将用户名、商品id、商品名、商品类别、商品价格、购买数量等信息加入数据库cart表。

12、shopcart3.jsp

本页为登陆页面shopcart.jsp的功能实现,没有实体展示页面。
实现功能如下:
①增加、减少商品数量;
②购买商品;
③删除商品;
④购买所有商品。
功能介绍:
①增加、减少商品数量:
1.用户点击增加或减少按钮,将传递参数至本页面,参数中包含opera参数判断用户进行的操作;
2.增加商品,将数据库中该用户的目标商品数量+1,由于数据库中可能存在多条目标商品数据,因此在SQL语句中做出限制LIMIT 1;
3.减少商品,将数据库中该用户的目标商品数量-1,由于数据库中可能存在多条目标商品数据,且商品数据购买数量可能为1,因此在SQL语句中做出限制LIMIT 1,判断购买数量若为1,则用删除该记录语句代替减少,最后判断目标商品总记录数是否为1,若为1则删除目标商品。
②购买商品:点击购买按钮,删除cart表中该用户的目标商品,并将该商品信息加入order表。
③删除商品:点击删除按钮,删除cart表中该用户的目标商品。
④购买所有商品:
1.在shopcart.jsp中初始化列表,分别记录需要存入order表中的数据,将列表存入session;
2.在shopcart3.jsp中并在结算页面获取session,遍历列表,将数据插入order表;
3.删除该用户购物车中所有商品信息。

13、account.jsp

页面主要包括以下内容与功能:
①历史购买信息;
②购买总金额;
③评论晒单。
内容功能介绍:
①历史购买信息:以当前用户的用户名在order表中进行条件查询,依次展示所有结果。
②购买总金额:
1.在遍历商品时,定义变量统计商品的价格;
2.在页面中展示。
③评论晒单:由于购买商品后才可以评论,因此才此处加入评论晒单按钮。

14、personal.jsp

页面主要包括以下内容与功能:
①基本信息;
②修改密码;
③进入管理员界面。
内容功能介绍:
①基本信息:从session获取用户名,在数据库中查找该用户的信息并展示。
②修改密码:独立表单,用户输入密码后,将参数传递至personal2.jsp。
③进入管理员界面:
1.判断用户是否具有管理员权限;
2.若用户不是管理员,则不展示管理员界面进入按钮;
3.若用户是管理员,则展示管理员界面进入按钮。

15、personal2.jsp

本页为登陆页面personal.jsp的功能实现,没有实体展示页面。
实现功能如下:
①判断用户名是否填写密码;
②更新用户密码。
功能介绍:
①判断用户名是否填写密码:若用户没有填写密码,则返回personal.jsp。
②更新用户密码:更新user表,将用户的密码设置为新密码。

16、shopadmin.jsp

页面主要包括以下内容与功能:
①用户管理;
②商品管理;
③新增商品。
内容功能介绍:
①用户管理:点击用户管理按钮,展开用户列表,提供修改用户信息、删除用户、设为管理员等功能。
②商品管理:
1.点击商品管理按钮,展开商品列表,提供修改商品信息、删除商品等功能;
2.修改商品数量会对输入的数量是否合法判断,若不合法则给出提示信息。
③新增商品:
1.点击新增商品按钮,弹出表单;
2.在表单中输入商品名称等信息,选择商品图片,点击提交;
3.在商品管理可以看见新增的商品。图片上传功能见FileUpServlet.java。

17、shopadmin2.jsp

本页为登陆页面shopadmin.jsp的功能实现,没有实体展示页面。
实现功能如下:
①修改用户信息;
②删除用户;
③设置为管理员;
④修改商品信息;
⑤删除商品。
功能介绍:
①修改用户信息:
1.接收来自shopadmin.jsp传递的参数;
2.在数据库中查询目标用户,更新用户信息。
②删除用户:
1.接收来自shopadmin.jsp传递的参数;
2.在数据库中查询目标用户,删除用户。
③设置为管理员:
1.接收来自shopadmin.jsp传递的参数;
2.在数据库中查询目标用户,将用户设置为管理员;
3.管理员用户将不能对管理员用户进行操作。
④修改商品信息:
1.接收来自shopadmin.jsp传递的参数;
2.在数据库中查询目标商品,更新商品信息。
⑤删除商品:
1.接收来自shopadmin.jsp传递的参数;
2.在数据库中查询目标商品,删除商品。

18、FileUpServlet.java

对商品图片上传功能的实现:
①引入包common-io.jar、common-fileupload.jar;
②设置文件存储目录,接收文件;
③文件重命名,并将文件名存入数据库。