JSP+Access 网上购物系统 第8页
系统的性能分析
网上购物系统的性质决定了它的服务端工作负荷比较大,这就要求服务端的硬件配置要尽可能的高,主要是内存,而且操作系统也要尽可能的稳定。基于java的系统一般来说网络安全性比较好,但并不能说就一定安全,尤其在windows操作系统下,由于windows的漏洞比较多,系统装配在windows下并不是最佳的选择,如果有条件,建议可将系统装配在unix操作系统下,提高系统的抗侵入能力。
系统的核心数据库,随着数据的不断增多,必然会产生冗余,导致系统运行效率降低,建议管理员定期备份和清理冗余数据,以保证系统的正常高效运行。
6.4 系统中所存在的问题及解决方案
6.4.1 系统的整体设计和规划中的问题
由于是基于B/S的系统,网页在其中就承担着非常大的工作,包括向服务端后台写入和修改数据,以及服务端响应客户端的请求,向客户端页面返回数据,这些工作不可能只由几个网页来完成,但网页数量一多又必然结构混乱,造成开发过程难以控制。
为解决这个问题,我采用了现代软件开发过程的模块化思想,先将系统功能进行分解,大致可分为两部分,即前台和后台,前台又包括主页面及产品信息展示页面、搜索功能页面、新闻页面、购物车及订单页面等几个大的部分,后台包括会员信息管理、商品信息管理、新闻信息管理、等几个部分,各个部分又由许多小的页面组成,这样一来虽然网页数量没有减少,但结构清晰了很多,在开发过程中可以逐步,逐个模块的实现,提高了开发效率。
6.4.2 开发功能模块所遇到的难点
因为是第一次做这么完整的系统,所以碰到的问题也很多,除了一些基本的语法之外,感觉还是一些考虑问题的思文方式不太得当,比如我的这个网上购物系统,我感觉难度比较大的还是购物车这个模块比较的难设计,因为过程比较复杂,他的一些逻辑处理就比较的难以用代码实现。
我参考了一些电子商务网站,研究了一下他们的购物流程,大概有了一些处理的想法,用户在点击定购之后,系统先将该商品信息写入购物车页面,只有当用户在选择了商品数量,及确认按钮之后,系统才将该信息写入basket表,用户不选择商品数量,或者不点击确认按钮,系统就不把该商品信息写入basket表,这样就不至于造成basket表数据混乱,用户无法继续购物。
当用户完成选购,点击去收银台结算时,系统开始判断商品库中的这些商品数量是否大于用户所选数量,如果没有,则提示用户没有该商品,如果有则将所有basket表中属于该用户id的商品信息提出来,并合计价格,返回给用户,用户如果确定付款购买,则给用户提供一个订货单,由用户填写一些基本信息,确认之后,系统则产生一个唯一的订货单号,并将其返回给用户,以便用户日后查询,同时,系统则将该用户所选购的商品信息以及用户信息放入到订单表中。
这样就基本上实现了购物车的功能。
6.4.3系统中存在的问题及拟定的解决方法
(1)第一个问题是用户在注册过程中,一些关键字段的命名规则存在着比较大的缺陷,比如用户名的选择上,一般的习惯是规定只能从a~z和数字0~9的随机组合,不能有特殊字符,而且只能以字母开头,不能以数字开头,用户名的长度也有限制,我在系统中只考虑了为空的情况,这是不够的,我们可以在jsp页面添加一段javascript验证代码,主要是使用正则表达式对用户名进行限制,具体的代码如下:
if( form.username.value.length<5||form.username.value.length>20) {
alert("\您的用户名长度应该在5-20个字符之间!");长度判断
if ( fIsNumber(form.username.value.charAt(0),
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")!=1 ){
alert("\您的用户名只能以字母开头!"); 开头判断
if ( fIsNumber(form.username.value, 特殊字符判断
"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")!=1 ){
alert("\您的用户名应该是数字、字母、下划线,不允许出现汉字等其他字符!");
(2)第二个问题就是用户登陆以后,如果需要修改资料,系统会先将数据库中该用户的所有信息以列表形式显示出来,问题就是此时出现的用户密码信息是以明码形式出现的,这对用户来说就存在这很大的风险,容易被他人看到,最好是以一些特殊符号来代替从而防止信息泄漏,在参考了其他网站的登陆模块之后,我对代码进行了简单修改,即可实现,问题是由密码的输入框属性引起的,原始的代码为:
<input type="text" name="user_pass" size="36" class=input value="<%=rs.getString("user_pass")%>">
此时密码输入框的属性为text也就是文本框,它会直接将数据以明码形式原封不动的输出,我们只需将其改为password属性即可,它以默认的黑色圆点代替真实数据,这样一个简单的修改,就保证了该部分的安全性。
(3)第三个问题是管理人员对用户的管理部分,一个是用户信息,尤其是密码的加密,处于对系统安全性的考虑,数据库中的用户密码应该对于所有人都是加密状态,包括管理人员,但因本人水平有限对这个方面也不是很了解,所以准备采用现有的加密软件对相关数据进行加密,如http://www.751com.cn该软件可以一次加密多个表,加密的文件会保存为新文件,不会破坏原来的数据库。加密算法采用了base64算法,但是目前不支持对中文进行加密,且加密的字段属性必须为“文本”或“备注”,因此对于需要加密的关键字段,我们必须事先将其设置为文本类型。如果需要我们可以也可将整个数据库进行加密,增加系统的安全性。
还有一个漏洞就是对会员的管理功能做的不够,没有考虑到用户密码丢失的问题,解决方法有两个,一个就是采取通常的做法,让用户在注册过程中,设置一些问题,通过回答问题的方式来取回密码,还有一个方法就是让管理员通过后台,初始化用户的密码,然后用户登陆对密码进行修改,这两个方法都可以达到目的,具体的实现过程不再一一说明。
对于网上购物系统来说安全性无疑是最重要的,层层验证虽然保证了系统的安全性,但对于用户来说又是极不人性化的,如何在最简单的验证流程下,保证用户数据的安全,是在做网上购物系统中需要考虑的一个问题。
总 结
我的毕业设计论文具体论述了网上购物系统的主要功能及体系结构,重点讨论了系统数据准备、数据库的逻辑结构分析、各模块系统流程 各功能模块的关联和响应 ,JSP与后台数据库链接等关键技术。这些技术的实现,满足了系统的需要,优化了系统的性能。目前基于该模型的系统处于实验室阶段,还存在许多问题与不足,如安全性能还不完善,缺少必要的数据加密系统等,,这些功能与技术还需要加以提高和实现。
网上购物系统无论是在开发过程中,还是建成后的日常文护过程中,都需要进行严格的检测,以保证购物系统的服务质量。 随着网上购物系统技术的日趋成熟、网上购物的优势日趋明显,会有更多的人参与到网上购物的浪潮中来,人类最终将迎接电子商务时代的来临。
参考文献
[1] 武延军 黄飞跃. 精通JSP编程技术[M]. 北京:人民邮电出版社,2001.8
[2] 柏亚军. JSP编程基础及应用实例集锦[M].北京:人民邮电出版社,2001.7
[3] 清宏计算机工作室.JSP编程技巧[M].北京:机械工业出版社,2000.1
[4] 周影 .网络编程语言JSP实例教程[M].北京:电子工业出版社,2003.6
[5] 陈海山.深入Java Servlet 网络编程[M].北京:清华大学出版社,2002.2
[6]Donny.JSP与网站开发编程实战[M].北京:科学出版社 ,2001.7
[7]Steven Holzner.Java技术内幕[M].北京:机械工业出版社,2002.1
[8] Phil Hanna .JSP技术大全[M].北京:机械工业出版社,2002.3
[9] Karl Moss. Java Servlet开发人员指南[M].北京:清华大学出版社,2002
致 谢
经过两个多月的努力,自己终于完成了毕业设计和毕业论文的写作工作,在这里我要感谢我的设计指导老师张老师,是他在论文的选题及技术方向上给我提出许多宝贵的设计意见,在最后的测试修改阶段又在百忙之中抽出时间为我提供了必要的帮助,这样使得我得以顺利的完成毕业设计开发工作,老师渊博的知识、敏锐的思路和实事求是的工作作风给我留下了深刻的印象,这将使得我终身受益,谨此向老师表示衷心的感谢。
感谢在校的老师们,在我大学四年里对我的谆谆教诲和无私帮助,在实际的开发工作中,我深深体会到了基础理论知识的重要性,在大学阶段只有好好学习,掌握好扎实的理论基础,这样才能在将来的工作中更快的学习,从而得心应手,有所成就,真正成为一个对社会和他人有用的人。
在这里还要感谢郑州信源信息技术有限公司的老员工们,在系统的具体开发过程中,是他们给予我了精心的指导和热情的帮助,使我得以顺利完成毕业设计。
最后还要感谢我的同学们,在这次毕业设计及论文写作中给我的支持和帮助。
上一页 [1] [2] [3] [4] [5] [6] [7] [8]