当前位置:首页 期刊杂志

基于SSH 框架的爱心捐赠系统的设计与实现

时间:2024-05-04

阎适成, 孟艳红, 王泽京

(沈阳工业大学 软件学院, 沈阳110023)

0 引 言

郭燕教授提到我国13 亿多人口年产旧衣物达到约50 亿件。 二手衣物的慈善化利用成为公众习惯"断舍离"后新的生活方式之一[1]。 很多人都想把旧衣物捐赠到有需求的贫困地区,但过高的运费以及捐赠渠道等原因阻碍这一公益事业的发展。 有些贫困地区在网上发布需求信息后, 基本上能收到源源不断寄过去的旧衣物。 而一些特别偏远没有网络发布的地区, 却很少能收到捐赠。 虽然很多城市启动了废旧衣物的回收箱,但是并未普及, 而且没有明确说明旧衣物的去向[2]。

流入爱心捐赠系统的旧衣物要保证可用性,达到足够的卫生水平,减轻仓储中的清洗消毒问题。对贫困地区的需求进行调查,从周边城市开始搜查贫困地区,再逐渐扩大化,避免出现某一地区的衣物堆积过多现象,同时能让用户明确旧衣物的去向。将旧衣物进行捐赠可以减少居民的存储麻烦,而且帮困助贫,同时也实现旧衣物的再利用。

系统针对旧衣物丢弃造成资源浪费和环境污染的问题,对旧衣旧物资源回收过程进行管理,对回收过程中所出现的实际问题进行探究设计,解决贫困地区得不到充分的衣物供给等问题。 爱心捐赠系统能有效地解决旧衣旧物的回收再且最大化利用,同时节省捐赠者的时间,还可以将对捐赠者来说没有价值的衣物兑换成有价值的物品。 受赠方可以无偿获得衣物资源。

1 系统框架及开发工具

系统利用Struts2+Spring+Hibernate 框架整合开发,前端使用静态网页加JSP 的技术并运用JSTL 标签库简化了应用程序的开发[3]。 SSH 框架的使用使得代码具有良好的解耦性和可扩展性,使应用程序具备适应大规模用户同时在线的能力。

系统利用MVC 设计模式,将整个项目分为模型、试图和控制器3 个层次。 JSP 技术在实际应用过程中,不仅可以提高网页开发效率,还可以保证质量[4]。 使用其实现前端动态页面,并将其部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML 或其他格式文档的Web 页面,然后返回给请求者[5-7]。

系统采用Eclipse 集成开发环境,Java 编程完成系统的各个功能的实现,利用JSP 实现动态网页的管理,网站开发过程相对简洁,使用少量的手写代码,简化实现对站点的编辑和管理。

2 系统需求分析

回收旧衣物并通过有效方法捐赠给贫困地区是爱心捐赠系统的研究宗旨。 捐赠者可将自己的旧衣物清洗干净,登录爱心捐赠系统,通过拍照图片和填写捐赠种类、数量和新旧程度信息后上传到系统中。经过管理员审核认证后,可以通过快递员上门取件或自行送到指定地点两种方式将想要捐赠的物品送出。 成功送出衣物后,系统自动保存用户的捐赠订单和状态,方便捐赠者查看。 当捐赠的衣物积累到一定数量时,通过联系贫困地区寄出相应的捐赠品,同时更新捐赠订单的状态。 本系统涉及到订单商品管理表(orderitem)、连接商品表(goods)和订单表(order),商品id 和订单id 为订单商品管理表的外键,实现每个订单拥有对应商品,有利于取数据库的维护管理。 管理员(admin)具有对所有用户信息(user)及物品信息的管理功能。 此外,数据库中还有奖品分类表(catelog),公告表(gonggao)和用户留言表(liuyan)等,这些数据表之间的关系如图1 所示。

图1 数据库表关系图Fig. 1 The relationships diagram of database tables

3 系统功能设计

系统由两部分组成:客户端和后台服务器端。客户端作为信息展示和交互的平台,主要包括我的信息、捐献、论坛分享、积分兑换专区4 个功能模块。服务器端由用户信息管理、积分管理、订单管理和系统设置4 个主要模块构成。

客户端主要功能:

(1)我的信息。 个人信息,捐赠记录,积分查看,联系客服,积分兑换规则。

(2)捐献。 捐赠分类(每个注册的用户可选择捐赠衣物的种类和件数),选择捐赠地区,预约回收时间(也可根据用户需求更改捐献时间),取消捐献等。

(3)论坛分享。 用户可以在这个页面分享自己的捐赠经历与捐赠心得,并且与其他用户进行交流沟通。

(4)积分专区。 显示出每一种物品兑换0 所需要的积分,兑换功能(用户可根据自己所得积分兑换相应物品)。

服务器端主要功能:

(1)用户信息管理。 储存管理用户基本信息。

(2)积分管理。 记录每一次捐献获得的积分时间,积分详情,捐献记录列表接口。

(3)订单管理。 对客户端提交的捐献订单进行管理,完成订单的相关信息的管理。

(4)系统设置。 后台维护和升级,防火墙的设置,设置对应级别的人员管理权限。

系统的功能图如图2 所示。

图2 爱心捐赠系统的功能图Fig. 2 The function diagram of love donation system

4 系统实现

4.1 客户端功能实现

捐赠者登录时通过Ajax 异步加载其各功能部分通过TUserDao.findById 方法取得数据,并以Json 输出实现那动态页面的加载。 在捐赠者对系统进行操作时,实现浏览器动态加载的效果,Struts2 框架对Ajax 提供支持,只需要调用action 中的getter 方法就能获取到相应的值,使系统在对请求action 的处理上更加灵活。减轻了系统接收请求的负担,登录后跳转到系统首页,如图3 所示,系统首页公告由后台统一管理。

图3 客户端主页面Fig. 3 Main interface of client

选择进入兑换页面,确认要兑换物品,服务器利用 goodsAction ( ), 将 获 取 的 goodsID 调 用getHibernateTemplate(),再通过数据库查询函数"from TGoods where goodsDel='no' and goodsCatelogId=? order by goodsCatelogId 获取商品ID 对应信息,由service 返回结果,跳转到goodsDetail.jsp 兑换页面,显示兑换的物品详细描述。 响应确认按钮,调用buy1()函数,将接收到的数值交互给action。 服务器端利用ResquestBody 实现接收HTTP 请求的数据,将数据转化为Java 对象进行计算,为订单做一个自动增长的表,用表里自动增长field 生成订单号,action 层处理请求通过service()接口实现数据通信,通过Response 响应给客户端,更新订单页面。

4.2 服务器端功能实现

服务器端界面由上端标题、左侧功能导航栏以及右侧工作区构建。 客户端发送请求,服务器端生成XMLHttpRequest 对象通过请求url,利用Method中的Post 方法向服务器发送请求,将返回值压入栈中,并以Json 的输出,将得到的字符串赋值在生成的树中,实现客户端页面更新。 在Dao 层中,Hibernate 自动生成SQL 语句,实现TAdminDAO、TCatelogDAO、TGoodsDAO、TLiuyanDAO、TUserDAO类的方法。 在Service 层中,所有实现类都放到Spring 中管理,由Spring 创建数据库连接池,调用Dao 层方法定义需要调用方法所属类的接口,而后添加get/set 方法,Spring 管理事务。 在Action 层中,Action 组织Service,由前端获取用户输入值,发送给Action,Service 返回结果,进行页面跳转。 服务器端界面设计如图4 所示。

图4 服务器端界面Fig. 4 Interface of server side

5 结束语

系统针对旧衣旧物资源回收所出现的实际问题进行探究设计,有效地解决旧衣旧物的回收再利用,实现其最大化利用。 对于捐赠者不仅节省时间而且可以将对自己没有价值的衣物兑换成有价值的物品。受赠方可以无偿获得所需的衣物。 系统采用目前比较成熟的框架结构及开发工具,在一定程度上减轻了开发的负担。 客户端利用Ajax 技术动态加载用户登陆后的页面,提高程序的加载效率和加快页面的加载速度,减少了响应时间。 采用MySQL 数据库,服务稳定而且有利于后期的维护。 服务器端与客户端采用POST 请求方式进行数据交互,返回值由Json 格式输出。 该系统为旧衣物的回收再利用提供了新思路。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!