基于SSH2的网上销售系统的设计与实现
2014-10-10娄松涛韩敏
娄松涛 韩敏
摘要:根据网上销售系统的实际需要,结合系统要最终解决的根本问题,从需求分析入手,制定了系统实现的技术方案。通过分析,对整个系统进行总体设计,然后又进行了详细设计,从前台和后台着手进行了各个子模块的划分。同时,对于数据库进行了深入分析,通过E-R图分析了实体关系,完成数据库表的设计。采用SSH2框架(即Struts2框架、Spring框架和Hibernate框架的整合)和AJAX技术实现,集成的框架技术可以使它们发挥各自的优势。
关键词:网上销售系统;SSH2框架;整合框架;系统设计
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)24-5678-02
随着这种消费模式的发展,网上购物已是人们生活中不可缺少的一部份。对于那些经济实力雄厚的大企业来讲,建设自己的销售平台自然轻而易举;但是对于那些经济实力稍差的中小企业来说就不同了,他们更在意的是投入的回报率。因此,对于中小企业来说,设计一种开发灵活方便,开发周期短,安全性高,花费低且投资回报率高的开发系统是十分必要的,网上销售系统便应然而生。通过网上销售不但可以来发布商品信息,为顾客提供便捷的服务;还可以为顾客提供一个交流的平台,可谓两全其美。
1 J2EE体系结构
在众多的J2EE框架中选择一个合适的开发框架还是比较困难的。经过对各种框架技术近年来的发展对比以,目前系统开发中在Web层、业务层和数据持久层上比较常用的框架分别是Struts、Spring和Hibernate。根据今后技术发展方向,采用新推出的Struts2代替原有的Struts,结合Spring及Hibernate作为开发框架,实现系统的所有功能。
SSH2框架的结构作为由Struts2、Spring和Hibernate整合而成的组合框架,利用分层设计实现的思想,利用Spring框架将数据持久层和网络层无缝集成在一起,同时利用AJAX技术很好地完成了用户体验,设计出了一个更加简洁,功能更完善的Web框架。该框架提高组件的可复用性,降低模块间的耦合度,提高了系统的可维护性和扩展性等。框架的每个层在系统中都有一项明确的责任,在功能上不与其它层混淆,并且结构上也是分开的,但通过通信接口连接他们。
2 系统设计
网上销售系统是基于计算机网络实现的,用户可以通过该系统选购合适商品并对商品进行评价的一个交流平台,因此系统采用B/S结构的分层思想进行设计。根据前面的分析,系统属于Web应用系统,大体上可以分为前台应用系统和后台管理系统。系统总体采用SSH2的分层设计思想,将系统分为表示层、业务逻辑层和数据持久层。表示层由Struts2框架实现,完成与用户的交互;业务逻辑层由Spring框架进行实现,利用控制反转机制完成各个组件之间的关联;数据持久层由Hibernate实现,通过ORM机制将数据库表转化为持久化对象,完成对数据库的存取操作。
2.1 前台应用系统模块
根据实际需要,前台的用户系统可以分为用户模块、商品浏览模块、购物模块和用户留言模块。
2.2 后台管理系统模块
后台系统为管理员提供了一个管理系统中各个模型的平台,管理员登录之后可以对各模块进行管理。
2.3 数据库设计
根据前面对系统进行的需求分析,针对所有存储的信息,系统所需要的数据表的设计和功能如下:
用户基本信息表:用于存放系统已经注册成功的用户基本信息;
管理员基本信息表:用于存放系统超级管理员的基本信息;
商品分类基本信息表:用于存放商品分类的基本信息;
商品基本信息表:用于存放商品的基本信息;
订单信息表:用于存放用户订单的相关信息;
订单项信息表:用于存放订单的具体条目相关信息;
留言基本信息表:用于存放用户对商品的相关评价信息。
3 系统实现
3.1 SSH2框架的实现
在SSH2框架的实现中,主要需要解决的有两个问题:一是实现Struts2和Spring的有效整合;另一是实现Spring与Hibernate框架的整合。
采用SSH2整合框架的优点就是可以进行分层设计开发,由Struts2负责完成页面请求的转发;Spring框架发挥逻辑层强大的事务管理功能,Hibernate在数据持久层发挥其强大功能,完成与数据库的交互。
1)表示层的实现
在表示层,主要是通过页面视图中的表单接受用户输入,Struts2框架通过FilterDispatcher进行匹配选择合适的Action,并交给Spring框架进行管理,处理完成后,再由Struts2框架将执行结果返回,跳转到合适的页面。在Struts2中每一个Action文件都是一个普通的JavaBean文件,实现了与Spring之间的良好结合。
2)逻辑层的实现
Spring框架通过applicationContext.xml文件进行配置,获取表示层的管理权,并建立于数据库的连接。在系统实现中,业务逻辑的设计就是利用接口Biz和接口的实现类BizImp设计表示层中具体所要使用到的处理方法。业务层框架Spring为表示层的Action配置一个bean属性,并将各个Action类注入到前面定义好的接口实现类BizImp,通过数据持久层Hibernate提供的接口完成对数据库的存取操作。
3)数据持久层的实现
Hibernate通过将数据库中的表转换成JavaBean,表中的字段对应JavaBean的属性。这样后面对表的操作也就变成了对这些JavaBean的操作,实现对数据库的面向对象编程,在数据持久化层的实现过程中最主要的是配置Hibernate.cfg.xml文件和实体映射文件。
3.2 系统安全性考虑
1)登录验证码
在登录界面,用户每次登录时必须输入一个随机生成的验证码,这个验证码是不可预知的,这样可以防止暴力程序的破解。
2)身份认证
系统中的部分功能是必须经过身份认证才能访问的,未授权用户将被拒绝。用户经过身份认证后,其信息会保存在服务器端的session当中,这些信息将伴随着会话的结束即浏览器的关闭而自动销毁。并且设置session的合适失效时间,当用户长时间不做任何操作,再进行访问相关资源时必须再次经过身份认证。另外所有的访问都经过Struts2的Action进行,这样防止了资源名的暴漏。
3)服务器安全性
服务器端的安全是十分重要的。一方面是在数据库上只开放需要的权限,并且不用sa用户,重新建立一个新用户;还要通过过滤用户输入防止sql注入。另一方面是关闭服务器上不需要的服务和端口,防止其他用户的恶意访问,并对文件夹权限进行设置。
4 结束语
通过SSH2框架和AJAX技术在网上销售系统中的应用开发,取得了以下研究成果:
1) 对Struts2、Spring、Hibernate框架进行了深入分析,根据其各自的优缺点,将它们组合应用到基于MVC模式的多层B/S结构Web应用系统中。
2) 根据网上销售系统的特点,提出了Struts2框架、Spring框架、Hibernate框架和AJAX技术相结合的集成整合方案。系统设计与实现采用分层的思想,Struts2负责表示层的视图显示,中间业务层由Spring进行管理,Hibernate完成与数据库的交换。另外,针对Web页面显示的不足,系统引入DWR框架使用AJAX技术实现多处的数据异步通信,大大提高了用户体验,优化了系统性能。
3) 系统完成之后,进行了功能和整体测试,测试结果显示达到系统设计要求。通过Apache JMeter测试工具对网上销售系统进行了整体测试,然后根据生成的聚合报告分析了系统在一定负荷压力下的性能,剖析原因所在,提出改进方案。
参考文献:
[1] Kumar等.深入浅出J2EE架构——应用程序设计与部署的原理[M]. 宋梅,译. 北京:清华大学出版社,2006:20-34.
[2] 杨中科. J2EE开发全程实录[M].北京:清华大学出版社,2007:16-18.
[3] 冀旭钢.利用Struts框架进行Web应用开发的研究[M].微机发展,2005,15(6):121-123.
[4] 林信良.Spring 2.0技术手册[M].北京:电了工业出版社,2007:37-43.
[5] Craig Walls. Spring in Action[J].Manning Publications, 2005(2):43-58.
[6] 刘洋,等.精通Hibernate——Java技术大全[M].北京:电子工业出版社,2005:74-81.