基于SSH2的小型购物网站的设计与实现
文/王源庆 罗素珍
摘要:进入21世纪后,随着计算机技术、支付技术的迅猛发展和提高,作为消费主力军的80后、90后已经习惯于网上购物了。在J2EE的基础上,使用Struts2、Spring、Hibernate三种目前非常流行的开源技术,设计并实现了一个基于B/S的小型购物网站,实现了网站前台和后台主要功能模块。
关键词:SSH2;购物网站;实现艾瑞咨询的调查数据显示,2015年网上购物的市场交易规模达3.8万亿元,网购用户规模达4.1亿人,人均消费额以20%左右的增速上升,各个数据都呈稳定增长的态势,消费者的购物习惯正慢慢的在改变。
度更快,用户的体验更好,节省了巨大的服务器资源,而且还可以为用户提供极为丰富的用户操作界面。
2、需求分析
一个完善的购物网站系统其实就是将卖家和买家联系在一起的交易平台,根据对网上消费者的购物形为进行分析,本系统分为前台展示和后台管理两个子模块。系统的前台主要是实现商品的展示功能,在系统前台还可以完成会员注册、会员登录、商品销售排行、浏览商品详细信息、查看已购用户评价、进行商品搜索、购物车管理等功能。系统的后台主要完成商品分类管理、购买的商品订单管理、商品管理、物流配送管理、会员基本资料管理以及系统设置的管理等功能。
1、开发技术简介
由Struts2+Spring+Hibernate三种不同技术组成的框架是目前J2EE平台上比较经常使用的集成开发框架,在Web应用程序开发中的应用非常广泛,它具有层次分明、可重复使用、修改维护容易等明显优点。
1.1 Struts2
Struts2是整个集成框架的基础,本质上是一个servlet,它负责MVC的分离,可以有效地减少开发人员Web应用程序开发的时间。由于Struts1表示层技术单一、与JSP/Servlet高耦合性、对API的严重依赖性等原因,使得Struts1的局限性不断暴露出来。Struts2正是在此基础上,吸引了Struts1的经验和教训,融合了WebWork的先进设计理念而发展起来的一种全新的Web应用框架。
3、系统设计
3.1 系统结构
系统采用B/S(即浏览器/服务器)架构,B/S这种架构其实可以看成是一个特殊的C/S模式。B/S的核心在于浏览器,用户仅需浏览器即可,根本不用考虑软件的兼容性问题,B/S结构如图3.1所示。
1.2 Spring
2002年,Rod Johnson在其编著的《Expert one on one J2EE design and development》书中对J2EE框架提出质疑,并开始探索一种更轻便、更灵活、且易于开发和维护、部署的开发框架,终于在2004年3月发布了第一个Spring版本,它能与现有的框架无缝整合,是一个轻量级的Java开发框架。
1.3 Hibernate
2001年11月,年仅27岁的Gavin King发布了第一个Hibernate版本,并得到了突飞猛进的发展。它是一个自动化的orm框架,对JDBC进行了轻量级的封装,有效降低了代码的冗余度;简化了DAO层,可以自动执行生成的SQL语句;支持各种不同类型的数据库,方便开发人员在不同数据库之间移植。
3.2 数据库设计
系统运行的效率与数据库的设计关系非常密切,PHP的速度快慢基本上都是取决于数据库设计及优化,根据数据库第三范式、表结构易于扩展、系统性能和安全等方面的要求,设计出User(用户信息表)、Classify(商品分类表)、Products
1.4 Ajax
Ajax是一种交互的Web开发技术,其最明显的优点在于,计算操作基本上都是在客户端完成,通过后台与服务器的通信,尽可能地减少了界面的刷新频率,这就使得程序的运行速
★基金项目:本论文为泉州市社科联2016年度规划课题“深化‘互联网+’,建设‘泉州购’大平台研究”的研究成果,课题编号:2016D16。
49
(商品信息表)、Orders(订单表),各表结构如下:
User(用户信息表)列名数据类型长度允许空默认值描述UserIdInt11否用户IDUserEmailVarchar128否用户邮箱UserPwdVarchar否用户密码NicknameVarchar否用户名PayPwdVarchar否支付密码TitleVarchar255否头像RolesVarchar255否用户角色LoginTimeInt11否0最后登录时间ApprovalTimeInt10否0实名认证时间CreatedTimeInt10否0注册时间Classify (商品分类表)列名数据类型长度允许空默认值描述ClassifyIdInt11否分类IDClassifyNameVarchar50否分类名称Products(商品信息表)列名数据类型长度允许空默认值描述ProductsIdInt11否商品IDClassifyIdInt11否分类IDPNameVarchar否商品名称PImgVarchar255否商品主图PPriceDecimal15,2否商品价格PDescriptionVarchar255否商品描述PnumInt5否商品数量Orders(订单表)列名数据类型长度允许空默认值描述OrdersIdInt11否订单IDUserIdInt11否买家IDGoodsVarchar255否商品列表Moneyfloat8否订单金额ODateInt10否下单日期OStatusVarchar255否订单状态IsPayChar2否是否付款AddressVarchar255否买家地址TelVarchar255否买家电话4、系统典型模块购物车功能实现
购物车是网上购物系统一个非常核心的模块,使用购物车,我们在网上进行购物时就可以用来暂时存放想要购买的商品或者拿出不需要购买的把暂存商品,等选购结束后再统一进行支付清算,而不用多次的提交操作,这里采用Session定义一个全局变量的方式来实现,通过对Session变量的适当处理,实现购物车商品的添加和删除操作。
购物车的操作流程:当用户将商品添加到购物车时,首先判断当前Session有是否存在购物车,如果已经有购物车,判断购物车中是否已经有该商品,如果已经存在,则将对应商品的数量更新,否则添加商品到购物车里,并计算价格。如果当前
50
没有购物车,则要创建一个购物车,然后才能添加商品。用户在购物车页面可以更改商品数量、清空购物车等。
购物车的创建采用Session变量来实现:session_reg(“GoodsId”); // GoodsId用于存储购物车中的商品ID
session_reg(“GoodsNum”); // GoodsNum用于存储购物车中的商品数量
struts.xml文件配置如下: /user/cart.jsp
/user/cart.jsp /user/cart.jsp
/user/cart.jsp
/user/cart.jsp
spring.xml文件配置如下:
5、总结
电子商务的魅力是利用网络的形式把原来客户和销售商的直接见面改变为在网络上实现,大大地节省了时间成本、提高了效率。本文介绍了基于SSH2技术开发的小型购物系统的功能分析、实现了数据库设计,并对系统的购物车这一核心功能模块的实现过程进行阐述,系统界面简单、用户体验良好、维护容易。
参考文献
[1]明日科技.PHP开发典型模块大全[M].北京:人民邮电出版社,2012.6
[2]李晓玲.电子商城系统的设计与实现[D].电子科技大学,2014
作者简介:
王源庆,泉州轻工职业学院讲师。研究方向:电子商务、网站建设。
罗素珍,泉州轻工职业学院讲师,硕士。研究方向:跨境电商、电子商务。
\"