安装完毕后,开始设置环境变量,新建环境变量CATALINA_HOME,值为C:\Tomcat5.5,新建CATALINA_BASE,值为C:\Tomcat5.5。
打开Tomcat5.5文件中的bin文件,双击其中的运行程序Server Runner,显示server start,服务器正常启动,此时在浏览器上敲入本地测试地址:http://localhost:8080 如果出现 Tomcat页面则证明 Tomcat安装成功,而且正常启动。
到这里,系统运行所需要的基本运行环境已经安装完成。
6.2 系统程序的安装和加载
6.2.1 文件的拷贝
我们可以将整个系统文件夹shop拷贝到Tomcat的默认根目录下,一般路径为:
C:\Tomcat5.5\webapps\ROOT。
6.2.2 数据库的连接
因为该系统仅作为毕业设计使用,为了方便演示和运行,系统所用数据库,采用了office自带的Access数据库,系统所用到的所有表都在其中,这里的数据库名称为db,放在目录shop/database/下面,连接使用ODBC数据源连接。
数据源设置步骤:(windows操作系统)
1.进入“控制面板”-->管理工具”--->“数据源(ODBC)”
2.选择“用户DNS”
3.点击“添加”---〉选择驱动器“Microsoft Access Driver”---点击“完成”
4.填写数据源名:shnxn
5.选择数据库:shop下面database下的db.mdb,为了安全,您可以把数据库放置在任何地方,只需保证这里的连接到那个数据库即可;
6.单击“确定”
7.完成数据源设置
设置完数据源以后,把文件中的classes文件下的所有文件夹复制到 网站根目录的web-inf文件夹下面;
然后重启服务器即可。
在浏览器敲入地址:http://localhost:8080/shop/ 我们可以看到网站的主页面已经出现,至此,系统加载成功。
6.3系统测试
6.3.1 系统关键部分测试分析
系统完成之后,对各个模块的功能进行了详细的测试,输入数据和预测输出数据相比,发现了一些问题。主要是在查询过程中预计查询结果和实际结果不一致,有时候达不到目的,对数据库的操作表之间的关联考虑得不够周到,因此往往会出现一些小的错误。还有查询条件的前后数据类型不一致也是一个很常见的错误,需要靠一步步的查找解决。各个模块组装完成后,又会出现一些问题。比如在操作购物车结帐的这个流程中,由于是多次添加和修改,最后结帐,所以很容易造成数据混乱,必须对相应的数据关系理清楚,一些关键查询统计的SQL语句必须反复斟酌才能放在程序中使用。
6.3.2 单元测试分析
(1)经过上面部分的分析,我们可以得知,购物车模块是我们需要特别注意的地方,因为它涉及到了我们数据库中的大部分数据,并且是进行网上交易的最关键部分,绝对不能出现任何的差错,下面我们就针对这一模块进行用例测试:
我们以用户jikou的身份登入系统,用户名是:jikou 密码是:1234
然后点击定购商品:诺基亚6100 单价为3800元
弹出购物车清单:选择商品数量 2 确认
出现清单:显示商品名称诺基亚6100 数量2 合计 7600元
与我们估算的数据相符。
此时选择清空购物车,继续购物,点击定购商品:摩托罗拉v70 单价为2500元
选择数量3 确认,出现清单:显示商品名称 摩托罗拉v70 合计7500元
继续选择收银台结帐,出现帐单显示:显示商品名称摩托罗拉v70 合计7500元
与我们估算的数据也相符,证明清空购物车的功能正常有效,并没有将我们第一次选购的物品计算在内,价格的计算也正确无误。
下面我们来看后台数据库的数据:
打开购物车表basket 我们可以看到以用户名jikou为关键字段的两条记录中,一条是我们第一次添加到购物车的商品信息,一条是第二次添加到购物车的商品信息,我们可以发现这两条记录的区别,第二条记录摩托罗拉的basket_check属性为是,subnumber属性为jikou2006151252,而第一条诺基亚6100 的basket_check属性为否,subnumber属性为空,证明该条记录没有产生订单也就是说这次无效的选购记录,并没有被计入到帐单中,和我们的预期目标一致,即该部分功能正常,测试完毕。
(2)对用户注册部分进行测试
用户名:jikou 密码:123456 确认:123456 E _mail:lwfree@youerw.com
地址:河南郑州 邮编:450002 真实性名:付立夫
提交以后,弹出提示信息:该用户已存在,用户名重复验证正常
将用户名改为:几个空格 然后其他的不变
提交之后我们会发现系统返回成功页面,但问题是用户名什么也没有,空格也被作为合法的用户名,这在实际应用中是不允许的,我们需要对其命名规则进行定义,具体修改请参看后面存在问题及解决方法。
同样的邮编及电话也存在规则未定义的问题,需要对其加以定义。
6.3.3 测试分析总结及说明
在测试过程中,我经过模块测试和组装测试,排除了系统的大部分错误。当然排除所有错误是不太可能的,我想应该还有些不易检测到的错误还没有被发现,需要在使用的过程中进一步的完善,数据库的加密是一个重要的概念,在实际的应用过程中是一个尚待解决的问题,应该做好数据库的完善工作,特别是备份和安全工作;另一方面本系统没有制作相关的打印,由于时间仓促难免有错误和不完善的地方,希望老师能够帮我指点和纠正。
6.3.4 系统的性能分析
网上购物系统的性质决定了它的服务端工作负荷比较大,这就要求服务端的硬件配置要尽可能的高,主要是内存,而且操作系统也要尽可能的稳定。基于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 ){
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页