网上购物系统毕业设计论文范文(JSP)(6)
资料介绍:
图 5.5找回密码页面运行结果
用户单击“查找”按钮,系统会将伤表中所示的数据表单提交到user/res.jsp中。user/res.jsp页用来验证提交过来的四个条件是否完全符合数据库中的查找条件,只有符合才能显示密码结果,否则弹出“你输入信息有误”的提示对话框。
5.3.2 用户资料修改模块
用户资料修改时为用户更改个人信息所提供的窗口,用户只有登录网页后才有权限修改个人资料信息。
用户资料修改模块在前台主页的导航条上,单击“修改资料”链接,进入用户资料修改页面,该页面主要用户修改用户信息。用户资料修改页面如图5.6所示。
图 5.6 用户资料修改页面运行结果
个人信息修改完毕后,要将修改后的数据信息更新到注册数据表中,单击“修改”按钮,如果提交的数据无误,将弹出“数据更新成功”的消息对话框;否则将弹出“更新失败”的消息对话框。
用户资料修改模块流程图如图5.7所示。
图 5.7 用户资料修改模块流程图
5.3.3 购物车模块
购物车模块中,主要包含以下几个功能,即:添加购物车、查看购物车、生成订单和清空购物车。 [来源:http://www.doc163.com]
购物车页运行结果如图5.8所示。
图 5.8 购物车页面运行结果
1、 添加购物车
添加购物车就是把用户选中的商品暂时存放在购物车中,当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品的详细信息展示在查看物品清单页面中。用户在单击物品清单页面下方的“放入购物车”链接,便可以将该商品放入购物车中。
添加商品的代码流程是从session中读取shop对象,如果为空则说明还没有进行购物或者已经清空了购物车,需要新建购物车对象;将商品名称与购物车列表中的商品名称对比,如果已经存在,则把商品数量加1。
在这段代码流程中,还使用了集合类型。集合类型在Java中又称为向量,是一元集合,可以加入重复数据,它的作用和数组相同,可以保存一系列数据,但集合类型也有它独特的优点,就是可以方便地对集合内的数据进行查找、增加、删除和修改等操作。
2、 查看购物车
为了方便用户随时查看购物情况,在网站的首页加入了查看购物车的链接,通过它可以将用户所有选中的商品信息放入购物车中显示出来。在程序中使用了一组文本框记录用户购买的商品数量,用户可以在文本框中输入想要购买的数量然购单击“修改”按钮。如果欲删除该商品,可以在数量文本框里输入“0”,并需要单击“修改”按钮来更新购物车中商品的数量。
[来源:http://www.doc163.com]
系统每次只会将1个商品放入购物车中,如果用户需要多个同种商品,可以通过修改商品信息右侧相应文本框的值来完成。操作完成后需要通过单击“修改”按钮来保存操作。
3、 生成订单
生成订单时网上购物商城的最终目的,前面所有功能的实现都是为最后生成一个用户满意的订单作基础,在此要生成一个可供用户随时查询的订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变以后,就可以到收银台结帐并生成订单。结帐的流程为:从购物车中读取商品名称,商品数量,商品价格信息,生成一个唯一的订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库。
在生成订单模块中主要使用了调出用户信息并生成唯一订单号,调出用户信息就是完全的对数据库进行操作,利用session对象把登录后的用户名保存起来,在订单生成时把保存的用户名从数据库的用户标中取出即可;生成唯一订单号方法有很多,只要确保订单号码的唯一性及方便用户记录以便于查询自己订单的执行状态即可。
订单生成后,用户单击“提交”按钮,便可以将录入的订单信息保存到数据库中。
4、 清空购物车
清空购物车是指当用户订单生成后,倘若还想继续购物一定要清空购物车再进行选购商品,这样防止重复购物,其实清空购物车实现起来非常简单,只需要将session中存储的shop对象清空即可。
[来源:http://www.doc163.com]
购物车模块流程图如图5.9所示。
图 5.9购物车模块流程图
5.3.4 订单查询模块
用户提交订单后,通过产生的订单号查询订单信息及执行状态。用户在购物中心首页中单击“订单查询”超链接,就可以进入输入订单号页面,在页面的文本框中输入订单号并单击“提交”按钮,如果订单号输入无误,系统将根据用户录入的订单号在数据表中查询处对应的货品信息并转到订单查询显示页面将货品信息显示出来。
订单查询模块流程图如图5.10所示。
图 5.10 订单查询模块流程图
5.3.5 留言板模块
留言板模块由浏览留言板和添加留言板两部分组成。下面分别对这两部分进行介绍。
1、浏览留言板
单击网站首页的“留言板”超链接进入留言板页面,在该页面中,主要显示用户所填写的留言,以便其他用户查阅。
留言板中显示的数据是从数据表中检索出来并显示在网页中的,为了方便查看网页信息,使用了分页显示功能。对网页进行分页显示首先要确定记录跨度,就是每页所显示的记录数,在这个网站的留言板中,设定了int pagesize=4,即每页中只允许显示4条留言信息,用户可以通过单击“上一页”、“下一页”、“最后一页”、“第一页”或则从文本框中键入一个数值跳转到相应页浏览留言信息。
[版权所有:http://DOC163.com]
记录的总条数可以从数据库中通过查询语句rs.last();rowcount=rs.getRow得到,而计算总页数时,根据总页数=总记录数/跨度,如果除不尽就加1的原理,设计代码为:
pagecount=((rowcount%pagesize)==0?(rowcount/pagesize);(rowcount/pagesize)+1)。
如果获取文本框中的数据不为空就把它转换成整型数据,然后赋值给当前获取页再做进一步判断;如果获取的页数大于总页数就把总页数赋给获取页数,否则就把获取页数值赋为1。而计算当前记录数时,当前记录数=(获取页数-1)*跨度+1。代码如下所示。
int showpage=1;
if(topage!=null){
showpage=Integer.parseInt(topage);
if(showpage>pagecount){
showpage=pagecount;
}else if(showpage<=0){
showpage=1;
}
}
rs.absolute((showpage-1)*pagesize+1);
有了以上这几个关键变量,网页分页显示功能基本上已经实现了,下一步就是在当前记录数位置开始循环,当数据库没有记录的时候一定要终止循环程序。代码如下:
for(int i=1;i<=pagesize;i++){
……
[来源:http://Doc163.com]
if(!rs.next())
break;
}
2、添加留言
添加留言是用户与用户,以及用户与网站之间的一种交流模式,只有把用户想要表达的内容添加至数据库中,才能在浏览留言板中进行显示。
用户在留言板中单击“添加留言”超链接就可以打开添加留言页面,该页面主要用来提交用户输入的留言信息。用户在添加留言页中单击“提交”按钮,系统会将数据表单提交到admin/addle.jsp页,该页用来实现江留言内容存入到数据库中。
留言板模块的流程图如图5.11所示。
图 5.11 留言板模块流程图
5.4 后台功能模块的实现
后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。后台包括管理员身份验证、添加商品模块、订单信息管理模块、查询用户信息管理模块、添加链接模块、公告信息管理模块。后台首页主要有以下几个部分。
(1)后台导航区:放置管理员可操作项目的链接;
(2)操作区:显示所有后台导航的链接信息。
5.4.1 管理员登录模块
在前台首页单击管理员入口,将转到管理员登录页面,该页面的功能是对管理员身份进行验证。在管理登录页面中,是通过JavaScript来实现录入数据完整性验证的。用户输入登录ID和密码后单击“登录”按钮时,如果录入数据完整性验证通过,系统会将数据提交到Acheck.jsp登录页面,该页面用来判断输入信息在数据库中tb_Admin表是否存在提交的用户名和密码,如果登录ID及密码有效,就保存用户名信息,管理员有权对网站进行维护;反之则提示错误。
[资料来源:http://Doc163.com]
登录页面如图5.12所示。
图 5.12 管理员登录页面运行结果
流程图如图5.13所示。
图 5.13 管理员登录系统流程图
5.4.2 添加商品模块
单击导航区中的“添加商品”超链接,系统将打开添加商品页面,该页面主要用于将商品信息添加到数据库中,以提供前台首页商品展示所需要的数据依据。用户单击“添加”按钮后添加商品如图5.14所示。
图 5.14 添加商品信息页面运行结果
为了减少人为错误,在提交商品信息时,需要对数据的合法性进行验证,输入的商品价格不能使字符型,而输入的图片只支持Gif格式等,这些任务由脚本语言JavaScript的函数check()来完成。代码如下。
function check(){
……
if(form1.image.value==""){
alert("请输入展示图片的路径");
form1.image.focus();
return false;
}
if(isNaN(form1.wareprice.value)){
alert("商品价格输入不正确");
[资料来源:Doc163.com]
form1.wareprice.focus();
return false;
}
为了确保商品在数据表中的唯一性,在用户提交表单时,需要先根据用户输入的商品名称对数据表进行查询,确保此商品在数据表中不存在后,方可执行插入操作。这一功能由admin/wcheck.jsp来完成。