https://www.bilibili.com/video/BV1Ku4m1N7Be/
演示视频:
4系统实现过程(详细设计)
4.1运行环境
4.1.1硬件环境
开发本系统时,本人所使用的电脑带有酷睿i5的cpu,gtx 950m的显卡,4G的运行内存,1T的机械硬盘。
4.1.2软件环境
开发本系统时本人使用的是windows win8.1的操作系统,使用了MySQL数据库管理工具,版本为5.0,JDK版本为1.8,开发工具为MyEclipse,版本为8.5,web容器使用的为MyEclipse自带的tomcat。
4.2系统实现
4.2.1首页设计展示
本网站使用css-div设计中的盒子模型,整体分为上中下三个模块。上方为菜单栏,平铺了本网站用户使用过程中使用的主要功能按钮,如用户注册按钮、用户查看信息按钮、查看购物车按钮除此以外,管理员登录按钮也安置在菜单栏上。菜单栏下方是一个轮播图,展示了本网站一些图书封面信息。页面中间为在网站的主体部分,中间的左边为图书信息浏览页面,展示了本网站的图书封面信息,用户登录界面、图书分类信息等界面处于中间右方位置。页面下方为本网站制作单位的基本信息。
图4-1 系统首页
4.2.2用户使用模块的设计与实现
用户信息的正确性和用户购物的安全性是每一个网上商场必须保证的两个方面,因此我们需要有效的验证用户的信息,对用户信息进行有效的管理。这里将对用户使用的基本功能的设计与实现进行详细的介绍。
1.用户注册
(1)需要实现的功能
用户在首页点击注册之后,弹出web表单进行填写,需要输入用户的个人信息,如用户名,密码等,这里主要验证用户的信息是否填写完整,以及用户的用户名是否重复,用户填写完毕点击确定按钮上传信息时,网站将会自动检查对用户提交的信息,如果不符合本系统规定填写,将会给用户反馈必要的提示,用户可以重新填写,而对于符合要求的信息也会提示用户已经通过,显示欢迎信息。
图4-2 注册页面
(2)后台实现:2.登录验证
(1)需要实现的功能
在本图书商城购书过程中,用户在浏览时不需要进行会员登录,而在用户需要购买图书、查看个人信息时,系统提示需要登录或注册成为会员才可以继续操作。界面的设计如图4-3所示。
图4-3 用户登录界面
(2)用户登录流程图
用户登录的流程图如图4-4所示。
图4-4 用户登录流程图
3.用户修改和注销
(1)需要实现的功能
用户登录点击修改信息按钮可以看到自己之前填写的所有的个人信息,可以根据页面内容进行填写修改。用户在将自己要修改的内容填写完毕后,点击提交按钮,完成修改操作。
s
图4-5 用户修改信息界面
用户在商城首页点击注销按钮直接退出登录而不用关闭窗口,这样其他人使用电脑时就不会使用该账号,保证了账号的安全。
(2)后台实现:
修改:根据session中的userid定位到该条用户数据,使用dao层的attachDirty()方法更新输入的用户数据到数据库。
退出:首先获取整个页面的session数据,然后将session中的名为user的数据删除即可。
session.remove("user");
4.图书信息展示
(1)需要实现的功能
本系统采用多种方式展示图书。用户首先可以在首页的主页面看到根据特价以及新品两个种类为区分依据展示的图书信息。其次,用户可以在右侧点击图书类别,根据图书类别,如计算机类图书查找到该类别的图书,将该类别的图书进行展示,然后用户还可以根据搜索栏进行搜索图书查找,展示该图书信息,最后首页还有销售排行菜单,根据销售排行进行图书展示。以图书种类为例,界面如图4-6所示。
图4-6 图书种类展示图书页面购物车
(1)需要实现的功能
用户可以将任意数量的图书加入到购物车中,同一本图书加入后数量叠加而不是重复出现,在购物车页面用户可以将自己不需要的图书进行删除,点击下一步按钮可以跳转到收银台页面。
(2)购物车流程图
图4-7收银台流程图
6.收银台
(1)需要实现的功能
用户可以将任意数量的图书加入到购物车中,同一本图书加入后数量叠加而不是重复出现,在购物车页面用户可以将自己不需要的图书进行删除,点击下一步按钮可以跳转到收银台页面。
图4-8 收银台页面
(2)后台实现
首先获取到该会话的Session从中获取cart和user属性,将订单数据表中所需要的数据添加到order实体对象中,例如订单编号、订单时间等,其中订单时间获取系统时间系统自动设置,订单状态默认为未受理状态,订单用户id为获取到的session中的user的id属性。再将购物车中的图书数据填入orderitem数据表中,之后将cart中的信息清除后再添加回本次session中,将order通过request返回到页面中。
7.查看订单
(1)需要实现的功能
用户在结账后可以返回首页点击查看订单按钮看到之前产生的所有的购买信息,如订单编号、订单金额、下单日期等,点击右边的查询按钮,可以看到更为详细的信息,同时可以点击删除记录将该条记录删除,该界面如图4-9所示。
图4-9 查看订单
(2)后台实现
首先获得本次会话的session,根据该session获取user,使用String sql="from TOrder where orderUserId="+user.getUserId()语句根据获取到的User的Id属性查询到当前用户的所有订单,再将该条数据返回到前台myOrder.jsp页面中。
8.留言
(1)需要实现的功能
登录过后的用户可以通过点击上方菜单栏中的我要留言按钮跳转到留言页面编辑留言,点击发布按钮后发布到系统中,可以根据自身情况对该系统提出意见。未登录的用户点击按钮后提示未登录信息。界面设计如图4-10所示。
图4-10 用户留言页面
(2)后台实现:
通过查询用户名是否存在在Session中来查询用户是否已经登录,如果已经登录用户就可以留言。如果没有登录,用户只有登录之后才可以进行留言,反之则跳转到留言界面。用户在编辑留言时,留言人显示session中的用户名,留言时间为系统获取的当前时间,用户填写完自己需要填写或者系统必须要求填写的内容后,系统将记录下该条留言,当用户再次点击我要留言时可以查看留言,使用List liuyanList=liuyanDAO.findAll()方法将留言数据放入list集合中,显示出该留言信息到liuyanAll.jsp中。
9.公告浏览
(1)需要实现的功能
首页显示公告的简要信息,用户可以通过点击特定某条公告进入该公告的详细信息页面。
图4-11用户浏览公告详细信息页面
(2)后台实现
首先管理员发布公告,将公告内容存入数据库中,在用户点击该条公告信息后,使用List gonggaoList=gonggaoDAO.findAll();方法将数据库中存储的公告数据存入list集合,通过将该List集合传递给页面使用<s:iterator ></s:iterator>标签将该list输出,显示公告信息。
4.2.3管理员管理模块的设计与实现
1.管理员登陆
(1)需要实现的功能
首页点击管理员登录按钮跳转到管理员登录界面,输入用户名密码比对数据库中的信息,若信息正确则跳转到管理员管理界面,反之则提示错误。
图4-12 管理员登录界面
(2)管理员登录流程图
图4-13 管理员登录流程图
(3)实现过程
首先获取到页面输入的用户名和密码,根据该数据用Sql语句查询到数据库中是否存在该条数据,若有则登录成功,否则失败。输入信息的检验根据前台页面login.jsp中的js进行检验。具体代码类似于用户登录。
2.管理员信息的管理
(1)需要实现的功能
对管理员自身个人资料如密码等进行更改操作,在操作之后将数据的改变反馈到数据库中,并能在重新进入该系统后要输入对应的全新的数据。界面如图4-14所示。
图4-14 管理员信息更改页面
(2)后台实现:
首先获取当前会话Session中的admin对象,将该对象的密码属性重写后使用sql语句updqte到数据库中,再将该admin对象数据传到前台userInfo.jsp中。管理员再次请求登录时需要使用更改后的密码与名称。
3.用户信息管理
(1)需要实现的功能
需要实现对现有用户的删除操作,管理员无法对用户的信息进行调整,只有用户本人才能调整信息。界面如图4-15所示
图4-15 管理员管理用户界面
(2)后台实现
用户管理主要使用DAO下的findById和findAll方法,前者通过用户唯 一的标识符userid来查询指定的用户数据,后者查找所有的用户数据。前者在查询到该指定的数据后可以进行删除操作,后者方法用来将系统中已经录入的所有用户信息展示到该页面上。
4.订单信息管理
(1)需要实现的功能
需要实现查看订单详细内容,删除订单,受理订单等按钮的功能。管理员可以点击相应按钮查看指定订单的信息,管理员可以选择是否受理该订单。管理员可以通过点击删除订单按钮删除该条订单。界面的设计如图4-16所示。
图4-16 管理员订单管理
(2)后台实现
订单信息展示后台:
使用String sql="from TOrder order by orderUserId"语句直接从数据库中查询所有订单信息,根据用户Id排序,将获得的数据传到前台页面中。
订单删除后台:
根据订单id使用orderDAO.delete(order);删除order表中相应的数据再使用String sql="delete from TOrderItem where orderId="+orderId;删除orderitem表中相应的数据。
订单受理后台:
根据订单Id查询到指定订单信息数据,使用update语句将订单状态改为已受理状态,再返回给前台界面。
订单详细后台:
根据订单id查询订单信息,将订单信息反馈到前台。
5.图书信息管理
(1)需要实现的功能
管理员点击添加按钮后可以给系统上传图书信息,如图书类别、名称等基本信息以及图书封面图片等,在管理页面还可以对现有的图书进行删除,更改等操作。
管理员在添加图书页面填写图书的信息,首先选择图书类别,之后填写图书的基本信息如名称、简介等,在选择需要上传的图书封面图片。点击提交按钮上传图书信息。而在图书信息管理页面可以将图书选择为特价和非特价,此页面显示管理员已经添加的所有图书信息,在上传图片位置滑动可以查看图书封面图片小图。添加图书页面如图4-17所示,图书信息管理页面如图4-18所示。
图4-17 添加图书信息界面
图4-18 图书信息管理界面
(2)后台实现
图书信息展示后台:
根据sql语句String sql="from TGoods where goodsDel='no' order by goodsIsnottejia";从数据库中全查所有图书信息根据是否特价为排列条件排列,将所有数据整合为一个List集合传回前台页面展示。
添加图书后台:
将前台填写的所有数据传到后台后设置为图书实体类goods的属性,将该实体类对象存入到数据库中。其中是否特价默认为不是。
删除图书:
根据选中的指定的图书的id来执行delete方法。
设置特价后台:
将选中的图书根据id查询到该条记录之后将该条记录的是否特价字段goodsisnottejia修改为是特价之后执行对应dao层下的update方法更新该字段信息,再将记录传回前台。
6.公告信息管理
(1)需要实现的功能
管理员通过公告管理页面发布公告到前台用户界面,让用户可以看见管理员发布的公告。管理员点击添加公告按钮进入添加公告信息页面,填写公告信息,点击发布后将其发布到首页,公告管理页面可以查看已经发布的公告并可以删除现有公告。
(2)后台实现
公告显示后台:
使用gonggao对应dao层下的findall()方法从数据库中全查所有公告信息,将所有数据整合为一个List集合传回前台页面展示。
删除公告后台:
根据选中的指定的公告的id来执行delete方法。
添加公告后台代码
将前台填写的所有数据传到后台后设置为公告实体类对象gonggao的属性,将该实体类对象利用对应的dao层下的save()方法存入到数据库中。其中日期属性默认填写为当前系统时间。
7.留言管理
(1)需要实现的功能
管理员可以点击留言管理进入页面管理用户的留言,可以删除指定用户的留言。界面设计如图4-21所示。
图4-21 留言信息管理界面
(2)后台实现
留言信息展示:
根据liuyan对应的dao层下的findall()方法从数据库中全查所有留言信息,将所有数据整合为一个List集合传回前台页面展示。
删除留言后台:
根据选中的指定的留言的id来执行delete方法。
8.财务管理
(1)需要实现的功能
管理员可以查看所有购买图书的收入情况,也可以根据下方时间选择指定时间内的财务收入情况。界面设计如图4-22所示。
图4-22 财务管理界面设计