基于SSH的科技竞赛报名系统研究
2013-07-13杨杨
杨 杨
(郑州华信学院信息工程系,河南郑州451100)
基于SSH的科技竞赛报名系统研究
杨 杨
(郑州华信学院信息工程系,河南郑州451100)
基于MVC设计模式,采用SSH框架技术的集成,实现项目开发“高内聚,低耦合”的思想,减轻科技竞赛报名系统开发人员重新建立解决复杂问题方案的负担和精力,提高系统的重用性、适用性以及可维护性.
设计模式;框架;集成
基于SSH的科技竞赛报名系统采用了J2EE的MVC设计模式,在系统设计中主要研究了Struts、Hibernate、Spring这三种技术在系统中的应用,摒弃传统的系统开发思想,一方面实现模型层(Model),视图层(View)和控制层Controller)相互独立以及“高内聚、低耦合”,另一方面实现表示层的异步访问控制机制,从而提高系统的重用性、适用性以及可维护性,同时降低开发和维护用户接口的技术含量.
1 SSH框架技术概述
Struts、Spring和Hibernate三种技术融合而成的框架是当前企业采用率较高的框架技术之一,它是J2EE领域的领头军,逐步成为企业标准.
Struts框架是MVC设计模式一个优秀的组件.它定义了通用的Controller(控制器),通过配置文件隔离了Model模型和View视图,从而将整个系统分为三大模块,这三大模块相互独立,各模块开发人员独立完成自己模块的工作,因此,系统的开发时间大大缩短,效率显著提高.
Spring大大简化了企业级应用程序开发,它的大小与开销都只占据了很小一部分容量,因此,在企业应用系统中嵌入Spring框架是非常轻而易举的,它主要作为依赖注入容器和AOP实现存在,同时提供了声明式事物、对DAO层支持等简化开发功能.此外,Spring框架大大的简化了企业级应用系统的开发,成为J2EE开发的“一站式”解决方案.
Hibernate是一个持久化框架,它的出现,同样给J2EE的开发带来了春天,它使得程序员对数据库的操作也像利用面向对象思想编写程序一样,可以随心所欲的操纵数据库,并且简化将对象数据保存到数据库中或者从数据库中读取数据并封装到对象的工作.通过简单配置和编码即可替代JDBC繁琐的代码.
2 SSH 在科技竞赛报名系统中的应用
2.1 系统设计
科技竞赛报名系统框架整合流程为:客户端发送的http请求到达过滤器,ActionMapper接收相应请求并将其发送至与之对应的Action,通过Hibernate处理数据库操纵,最终系统将Spring依赖注入到业务逻辑层,使整个系统框架结构变得简单,易于操作.此项目结构如图1所示.
图1 项目结构
2.2 系统实现
2.2.1 添加Struts支持
以用户注册功能为例,在index.jsp页面单击“用户注册”超链接,转到agreement.jsp页面,在agreement.jsp页面单击“我同意”按钮,转到info.jsp页面,单击“不同意”按钮回到index.jsp.
图2 struts机制
在用户注册页面填写注册信息,并提交给Action,由Action进行页面处理.Struts运行机制如图2所示.
配置struts-config.xml文件,创建Action继承DispatchAcion:
public class UserAction extends DispatchAction{private UserBiz userBiz=newUserBizImpl();public Action-Forward toAdd(...){return mapping.findForwward(“user”);} public ActionForward doAdd(...){
UserFormmyForm=(UserForm)form;User item=my-Form.getItem();if(this.userBiz.isExists(item.getUserName())){ request.setAttribute("msg","");return mapping.findForward("user");}else{this.userBiz.add(item);}} }
2.2.2 Hibernet关联
给项目添加Hibernate支持,生成Hibernate配置文件、生成映射文件,最后导入BaseHibernateDAO文件,系统中所有DAO的Hibernate实现类都将继承自这个类.
(1)配置hibernate.cfg.xml,设置数据库连接信息.
(2)生成实体类和相应的映射文件.
(3)配置关联,如many-to-one关联等.
(4)创建DAO层.
(5)创建实现类,继承自BaseHibenateDAO.
public class GoodsDAOHibimpl extends BaseHibernateDAO implements GoodsDAO{public void add(Goods item){super.add(item);
}public void del(Serializable key){super.del(key, Goods.class);}public Goods get(Serializable key){Goods item=(Goods)super.get(key,Goods.class);return item;}}
2.2.3 Spring依赖注入
使用Spring的Action代理,直接把Biz对象注入到Struts Action中.注入次序如图3所示.
图3 Sring注入
对Hibernate进行集成,将SessionFactory注入到Base-HibernateDAO,在Biz层采用Spring声明式事务的方式添加事物支持.如图4.
图4 Sring与Hibernate集成
给Biz层方法添加事务支持.
3 结语
此科技竞赛报名系统的设计通过Spring框架的依赖注入,将原本复杂的框架结构变得简单,清晰.利用Hibernate对数据库的操作,大大简化了持久层的访问,同时轻松集成Strus框架,真正实现了面向对象、面向接口程序设计.通过此系统的开发,使学生真正融入到实际项目中去,实现学校与社会的零距离,同时,此系统的开发与实现大大提高了高校科技创新活动的效率,对高校实践教学有着重要的实际指导意义.
〔1〕刘中兵.开发者突击:Java Web主流框架整合开发J2EE+Struts+Hibernate+Spring[M].北京:电子工业出版社,2008.
〔2〕高洪岩.基于Struts2+Hibernate+Spring实用开发指南[M].北京:化学工业出版社,2010.282.
〔3〕王钰淞.基于SSH框架的统一认证平台研究与实现[J].科技资讯,2010(4):4—5.
〔4〕张赞.基于SSH的J2EE架构在考务管理中的应用[J].农业网络信息,2009(2):121—122,133.
TP311.5
A
1673-260X(2013)08-0017-02
河南省民办教育协会项目资助(hmx20120053)