ssh框架范例6篇

ssh框架

ssh框架范文1

关键词:架构;JavaEE;框架;SSH;研究

中图分类号:TP311.52

框架的好处一是让开发效率得以提升,二是给软件复用开辟新途径,所以对框架在强健与稳定方面的构建长久被关注。本文从对多层体系的JavaEE进行剖析出发,接着对Struts、Spring和Hibernate进行分析,最后整合这3种框架构建成SSH框架。一来让各层耦合度降低,二来对系统在移植、开发效率、维护上都有提高。

1 JavaEE总述

1.1 JavaEE的多层体系简述

平常说架构也可被称为体系结构。架构指:作为一种结构,用来对其它东西进行支持、封装;尤其骨架性的支持,在构建其它事物上它是基础。JavaEE的分层结构是:客户层、WEB表示层、业务逻辑层、持久层、数据库层[1]。WEB表示层用框架Struts来实现,它把标签、信息资源及JSP等整合,让业务逻辑同显示逻辑两者分离。业务逻辑层用框架Spring来实现,它把轻量级容器(基于IOC)作核心,编程思想用的是面向切面(AOP),在非侵入性方面让编码得以实现。持久层用框架Hibernate来实现,对数据库表同领域模型对象间的ORM映射进行实现,使人工利用JDBC处理、SQL的时间缩减不少[2]。

1.2 JavaEE的缺陷

1.2.1 成本高

对容器EJB来说,一是组件供应商必须给予复用组件做支撑;二是容器供应商必须给予合适的底层环境让其运行;三是服务器供应商必须给予应用服务器才可让组件部署、容纳、管理得以实现;四是系统部署员必须将组件在2个以上的服务器中做部署,这些均会耗费极大支出成本。

1.2.2 开发思想限制大

遵照EJB机制就必须用EJB的规范对组件进行编写,再在容器里部署运行。组件编写时,用户访问的远程及引导接口必须被编写,一旦用户对这2个接口进行访问,容器就会即刻拦问并将其接管,通过Beans对应的办法调用来实现。开发思想限制太大让诸多问题解决受挫。

1.2.3 EJB调用的缺陷

软件开发时在对服务的调用方面,EJB机制却是种束缚。整个部署中,对对象机制做定位的在EJB中是JNDI。无论对象定位还是获取服务都是显式的,如在代码中调用者要组件做什么服务,或者服务名字是什么,并且代码还要对JNDI编码方式及特定接口上加以实现,对代码复用都显然不利,耦合性也会增加。再者服务查找也是显式的,EJB的重量级再次体现。

1.2.4 处理持久化的缺陷

说到持久化往往选择分2种:第一是容器管理方面的持久化;第二是Bean管理方面的持久化。选择第一种容器管理方面的持久化,则必须于Bean类中,对字段变量先做相应定义,同时在容器、服务器上部署持久化信息。虽然工作量省下挺多,但成本极为不划算。再者将来对持久化信息做改变也不灵活,功能极为有限。选择第二种Bean管理方面的持久化,虽然系统灵活问题不存在,可是避免不了对JDBC做代码编写,而且凡是操作同数据库沾边的代码都要编写,一来重复性过强;二来尤其在业务逻辑方面,对其代码有太强侵入性。

2 Struts、Spring和Hibernate框架简述

2.1 Struts框架

2.1.1 Struts简述

该框架被基金会(Apache)视作开源软件。一方面在稳定、成熟及高效上从项目Apache里得以继承,另一方面在流程控制及Taglib上也极其强大。此框架是对MVC模式良好应用的典范。所谓MVC指:把模型、控制器与视图的英文首字母取出并拼到一起。在实现组件方面由此框架给这3个类分别提供。

2.1.2 Struts优缺点

MVC所有优势被Struts继承,还在新内容上加以扩展。优势涵盖:

(1)此框架是开源的。对设计者,一来开源意味着使用免费;二来开源可在实现机制上对MVC透彻了解;三来在全世界此框架受诸多设计员支持。

(2)包含强大标记库(Tablib)。借此框架可做代码抽象及复用,使开发效率得以提升。另外也可做验证工作,使验证代码不必重复写,这样工作量得以减少,验证代码更易集中管理。

(3)系统导航联系不同部分,系统脉络更清晰,对系统整体设计员也更好把握,在扩充维护方面系统也有提升。

此框架尽管优势较多,但劣势也难以忽略:

(1)对于初学者来说,要想对此框架进行透彻掌握须花费大量时间,原因是它会让学习者将长久形成的编写习惯完全打破。

(2)尽管此框架在结构上更加清晰,但无疑这也会使系统变得更复杂。

(3)从出现至今,此框架时刻在变更,眼下该框架无论是在理论上还是经验上都较浅薄,因此在大型软件里将此框架运用还极少。

2.2 Spring框架

2.2.1 Spring简述

该框架是在框架中属轻量级的,它基于AOP及IOC的多层体系。虽然如此,但是此框架不会强制设计员在任一层都必须用到它。究其原因是它在模块性能上表现良好,依照系统实实在在的情况,设计员完全可对它的任一模块做选择。另外,它在MVC模式上同样可实现,而且即便数据访问用到的技术不同,它也可实现统一化的接口。

2.2.2 Spring优缺点

该框架优点:第一、组装代码的思想采取延时注入,可使系统在扩展性与灵活性上大幅提高,让插件式编程得以实现;第二、在AOP思想下,对业务逻辑做集中处理,让重复代码得以减少,让解决方案更为有效。而此框架缺点:一是使用的人较少;二是jsp写的代码过多;三是控制器太灵活;四是公用控制器匮乏。

2.3 Hibernate框架

2.3.1 Hibernate简述

此框架在开发上用到ORM映射。它对数据库表同领域模型对象间的ORM映射进行实现,在对对象JDBC做封装时采用轻量级,所以设计员要操作数据库在编程思想方面完全可选用对象编程。

2.3.2 Hibernate优缺点

此框架优点:第一、实现透明性不是用字节码而是Java对应的反射机制;第二、与用SQL或JDBC操作数据库比较,此框架的HQL语句用对象方式对既复杂又麻烦的关系算法做描述,使数据库在查询方面很大程度地得以简化,开发效率也顺其自然得以加快;第三、此框架对事务管理、数据访问及缓存等进行封装,而不必自己编写代码;第四、将数据表数据映射到对象中,把对象当成传输媒介,让各层传输更容易[3]。

此框架缺点:第一、眼下此框架仅限于对数据表的支持,其余对象少有支持;第二、此框架虽然在复杂表的关联方面映射良好,但要想对存储过程用数据库调用是不行的,因为它并非数据表对象,因此只可借助JDBC来做到[4]。

3 基于JavaEE架构SSH框架设计与实现

3.1 总体规划

作为由Struts、Spring和Hibernate整合后搭建的框架,设计目的是:为web营造简洁化、功能极强的框架,让组件复用性更高,层间耦合更低,无论维护还是扩展方面系统都更好。把SSH框架用3层表示:一是表示层,二是业务层,三是持久层。在程序处理方面,每层明确分工,不跟另2层功能重合,同时每层同另外2层完全分离,只需在3层间加一通信接口即可。

把JavaEE做SSH框架基础。在框架的流程里,表示层用Struts替代,一是对用户请求用标记库来管理,同时给出对应的响应;二是业务逻辑方面,用控制器做对应控制。而框架Spring跟框架Struts可完美结合,在依赖注射及事务管理上,它有独到的地方,所以在业务逻辑方面用它极为合适。采用Hibernate做持久层,在对象封装方面对JDBC是轻量级的[5]。

3.2 具体实现

用Struts做表示层,MVC控制角色用通用控制组件替代,Action可让链接转向、动作处理及业务逻辑得以实现。

用Spring做业务层,用来对业务组件在关联、组装方面进行实现,通过利用面向接口方式的编程、AOP及依赖注入,一来让各层耦合度降低,二来对系统在移植、开发效率、维护上都有提高。

Hibernate对JDBC做封装,而在底层访问上,JDBC给数据库支撑。这样程序运行时,只要JDBC给数据库做驱动,便能利用对POJO操作的办法,对任一数据库都可随意操纵。如此便可把JDBC绕过,让JDBC的诸多代码都省下来,省下的精力关注在页面及业务逻辑方面更好,并一定程度对逻辑代码的上层做保护,让组件重用轻松完成。

4 结束语

眼下把3种框架合理整合搭建为新型的SSH框架已被广泛采取。首先,3种框架都是开源的,无论开发背景还是文档资料上都是既免费又丰富的。其次,此框架下的系统,在持久化、业务逻辑、控制及视图方面均层次分明,不同角色具有不一样的职能,在系统复用、升级、运行、移植、维护及扩充上均十分有利。最后,开发周期被再次降低,维护成本再次下降,效率上升,加之交互过程中让模块耦合性大大降低,使得内聚性大大加强,系统健壮性也大大提升。

参考文献:

[1]沈建东,龚潘晶,谢东然.基于JavaEE架构的高职院校办公自动化系统的研究与设计[J].科技致富向导,2010(08):53-58.

[2]解智,张俐,张维玺.基于JavaEE轻量级架构的安全电子拍卖系统的设计与实现[J].科学咨询(科技-管理),2012(12):32-40.

[3]冯远正,裴云,刘雅琴.基于JavaEE多模式的旅游电子商务系统的设计与实现[J].科技情报开发与经济,2012(17):23-36.

[4]唐倩,张伟,李伟诚.基于SSH架构的智能社区信息管理系统的设计与实现[J].计算机时代,2012(12):32-40.

[5]刘军,陈敬勇,邱占芝.基于SSH架构电工电子网络虚拟实验室教学信息管理web平台设计与研究[J].计算机技术与发展,2012(17):23-36.

ssh框架范文2

关键词:MVC;SSH框架;j2EE

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)31-7667-03

1 引言

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。我们在网络上经常会遇到上传文件的情况,对于这类操作,我们大都是使用组件完成的。同时,由于这类操作存在普遍性,所以有很多优秀的组件供我们选择。不过几乎所有的组件都只是提供了相应的接口,并没有向使用者展示其内部的具体信息,所以很多使用者都存在知其然,不知其所以然的现象[1]。

本文选择了目前十分流行的SSH框架技术,以文件上传模块为例详细描述SSH框架技术在文件系统中的应用以及具体在项目中实现文件上传的操作。

2 SSH框架技术

2.1 struts技术

Struts是一个基于模型(Model)―视图(View)―控制器(Controller)(MVC)三层架构的框架。这种三层架构的框架易于分层,将表现层、业务逻辑层和数据库相分离,利于系统的重用和维护[2]。MVC的优点是将页面显示、业务逻辑和数据处理分离出来,这样可以提高模块的聚合性,从而降低系统的模块间的耦合性,这样可以增强系统的扩展性和可维护性,这样可以使项目组成员分工协作[3]。Struts自身是基于Servlet技术的,包括ActionServlet组件和一些Action的组件。ActionServlet接受来自web客户端发出的请求,然后将这些请求传递到到处理这些请求的Action对象。这个过程是通过struts的配置文件起作用的。在模型方面,严格来说,Struts框架技术没有在这方面提供现成的组件或者构件,开发设计人员需要根据具体的需求分析来选取适合的组件,因此,可以看出sturts只是表示层的框架[4]。但是Struts可以和Spring以及Hibernate另外两种开源框架进行无缝的集成,这同时也体现了Struts的可扩展性[5]。图1展示了Struts框架的总体体系结构。

2.2 hibernate技术

Hibernate开源框架技术是基于ORM对象关系映射的,使用hibernate技术,数据的设计也是基于对象设计的,对象和数据库表的对应关系是对应的,这样达到映射关系,hibernate是JAVA技术业务应用和数据库之前的桥梁,通过java语句数据库调用和数据库进行联系。hibernate内部封装了JDBC访问数据库的操作封装为一个jar包,这样,就可以直接通过hibernate向上层提供数据库访问应用。

Hibernate框架技术中一些核心对象的解释:

1) SessionFactory:sessionFactory是一个提供session的工厂,在系统中运行的缓存,用户记录等需要进行session存入的对象,都要放在session之中,如果每次连接都需要重新建立一个session,这样会降低访问效率,sessionfactory就是数据库连接池。

2) 持久化对象:对象从生成到加载到内存到撤销经历一系列的阶段,当对象存入到数据库时之前,发生的持久化操作之后,这样的对象才是持久化对象。

3) 临时对象:与持久化相对应的,临时对象是没有存入数据库的,已经加载到内存,但是没有事物操作的对象,是暂存对象。

4) 普通对象:普通对象也叫做pojo,在系统中表现为基本的java类对象,在java类生成对象之后,每一个对象都是一个pojo,一个普通对象有相应的成员方法和一组操作,提供和其他对象进行通信的方法。

5) 对象关系映射:对象关系映射也叫做ORM,核心思想是将java类和数据库表对应,达到映射,这样的思想方便用户操作数据库,使业务操作和数据库操作联系起来[6]。

Hibernate可以通过自身的组件hibernateTemplate,直接访问数据库,其实访问的应该是java类,通过自身方法,增加,编辑、删除数据,通过调用hql语言对数据库进行操作,方便而且快速[7]。

2.3 spring技术

Spring的核心思想是依赖注入和面向切面编程,成员变量的生成可以不用java的new方法,同构配置文件,可以在容器内生成,这就是依赖注入的思想,面向切面编程可以加入日志和安全监控信息,而不用考虑到系统其他逻辑的干扰,使系统并行更加完善[8]。

2.4 SSH整合

SSH架构是当前非常流行的架构,web开发流程已经非常成熟。SSH现在发展为s2sh框架,struts2为struts的第二个版本,表现层采用Struts2技术,Struts可以在视图层和控制层发挥作用;业务层用Spring框架,Spring是真正实现业务逻辑的,又可以细分为业务逻辑层和业务逻辑实现层;持久层用Hibernate,Hibernate充当数据访问层即dao层,又可细分为数据访问层和数据访问实现层。层次清晰,每一层没有和其他层混合,通过接口进行通信。面向接口编程而不是面向实现编程。结合Struts2、Hibernate和Spring,可以使系统晰,既降低了开发难度,又提高了开发效率。

3 基于SSH的文件上传技术实现

3.1 系统需求分析

系统建立前,针对文件上传需要实现的功能进行分析,在此基础上,结合实际的需求,确定系统的基本功能。需要在前台的浏览器中输入相应的URL,展现文件上传界面,输入相应的文件属性,例如名字,大小等等,然后选择文件进行上传。

3.2 系统设计

3.2.1 系统结构设计

根据需求分析,将系统模块按前台浏览,文件上传,后台维护管理进行划分。

3.2.2 数据库设计

文件上传系统的主要关系数据模型,file 是数据库的对应的表名,字段名称包括,唯一标识符ID、文件名称fileName、文件大小fileSize、文件主体fileText、文件上传作者author、文件概述description。类与表之间的对应关系如图2所示。

3.2.3 系统开发环境

系统开发平台

操作系统:Windows Server 2003 ;

Web服务器:Tomcat 5.5 ;

开发工具:MyEclipse;

后台数据库:MySql;

3.3 系统应用框架

系统基于J2EE规范开发的,与.net架构相比较而言,J2EE架构有自身优势,现在发展为javaEE,JavaEE是利用java技术来简化web开发一种体系结构。Java语言通过java虚拟机来达到很好的平台移植性,可以达到一次编写,多次运行的效果。

系统基于浏览器/服务器(B/S)的体系结构,采用Struts、Hibernate、Spring相结合的开源技术,系统层次架构如图3所示。

3.4 系统实现

3.4.1 数据持久层的实现

数据持久层是为web Servie层提供服务的,业务逻辑层是为满足用户需求,用户的操作在业务逻辑层提供接口和实现,业务逻辑需要调用数据库数据,这是,数据持久层就要为业务逻辑层提供服务。

数据持久层需要和数据库进行连接,数据库的配置是在配置文件hibernate的文件中配置,在配置文件中数据库名、数据库密码以及各种表的映射都是在配置文件中。

3.4.2 业务逻辑层的实现

业务逻辑层在代码中对应了两个主要的包:一个是model包为upload.fileModel,另一个是service包为upload.uploadService,model包存放的是java的基础类,service包封装的是业务逻辑,也可以细分为业务逻辑接口和业务逻辑实现。

1) 基础业务对象

从ORM触发,每一个java类得对象都会映射到mysql数据库中一个具体的数据库表,从而,需要建立java基础类,file,在file类中定义成员变量文件id,文件名,文件大小,上传人等等成员变量,然后提供一些操作,在数据库表中需要有一个file表与类相对应,这样进行面向对象合计和ORM思想的实现。

2) 基础逻辑处理对象

在系统的业务逻辑层,可以使用Spring实现声明式事务管理,将对每一个java普通类生成的对象建立相应的逻辑处理,这样可以证程序层次清晰、结构完整。对于基本的对象操作,都封装在相应的业务管理对象中,同时对复杂的逻辑处理建立单独的对象,在业务逻辑层统一进行管理。Spring是真正实现业务处理的开源框架[10]。

3) 事务管理

Spring提供了声明式事务管理。这是通过Spring AOP实现的。Spring 中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制,它是通过动态实现的,由于接口是延迟实例化的, spring在这段时间内通过拦截器,加载事务切片。

3.4.3 视图表现层的实现

表现层采用jsp,jsp优点突出,自从问世以来,一直受到关注,是表现层的错误不会延伸到其它层,流程更加清晰具体。本项目实现中,应用Struts 2.0来实现视图显示层。

Struts 2.0的每一个请求映射到页面是通过struts的配置文件,每一个动作应该有一个action对应。采用XML文件映射的方式,所有对Action调用的请求都将通过这个filterDispatcher。然后根据返回值定向到不同页面。

4 页面视图的创建

本文使用基本的JSP语法,同时也是用了struts的标签语言,并没有使用模板语言Freemarker实现视图展现的部分。所以这也是本系统需要改进的部分。

5项目运行

基于本文提出的文件上传技术,开发的系统已经可以投入远程教育项目运行,系统运行的前台页面如图4所示,上传之后的界面显示为图5所示。

数据库的显示可以看到插入一条信息为上传文件的信息。

文件系统功能完善,结构清晰、层次合理;有利于减轻了解决复杂问题的负担和精力,利于web开发,大大提高了开发效率;在对需求分析的变更方面,易于移植;开发人员可以更专注于业务逻辑处理。

参考文献:

[1] 王文龙,王武奎.利用java语言实现文件上传功能[J].微计算机信息,2007(33).

[2] 应红燕,马明锦.基于Struts和Hibernate框架的西文期刊导航系统[J].现代图书情报技术,2009(11).

[3] 李少辉,别红霞.基于Struts的Web系统开发技术及论文在线系统实现[J].计算机工程与科学,2009(8).

[4] 欧阳宏基,马广平,葛萌.基于Struts框架的Web应用研究与实现[J].计算机与数字工程,2010(3).

[5] 李邵平,彭志平.S2SH:一种Web应用框架及其实现[J].计算机技术与发,2009,19(8).

[6] 史胜辉,王春明.Struts+Spring+Hibernate三种架构在管理信息系统中的应用[J].中国管理信息化:综合版,2006(12).

[7] 孟小华,安现波,李展.Struts和Hibernate在移动卡类业务系统中的应用[J].计算机工程与设计,2010(2).

[8] 张琛,吴跃,邱会中.基于Struts+Spring+Hibernate的整合架构及其在电信业中的应用[J].计算机应用,2006(S2).

ssh框架范文3

Abstract: In order to improve the efficiency of the catering management, this paper puts forward a solution for college catering management based on SSH framework. The overall framework of the system, business processes, and the design of the main functional modules are introduced, the key technology of SSH framework in the development of the system is studied. Practice has proved that using the SSH framework design mode, can be a good division of the system, make the hierarchical structure of the system more clear, reduce the coupling between modules, simplify programming, improve the efficiency of software development, improve the performance of the system and maintainability at the same time.

Key words: Struts; catering expense management; Hibernate; Spring; SSH; MVC

0 引言

近年来高校大力扩招,这给高校的管理带来了很大考验,学生的就餐就是一个不小的问题。传统的餐费管理大多采用人工管理,效率低,已经不能满足当前的需求。针对这个问题,本文通过SSH(Struts+Hibernate+Spring)框架技术,开发一个基于MVC的高校餐费管理系统,使餐费管理实现智能化管理。实践证明,该系统的投入使用,大大提高了管理水平和效率。

1 SSH框架介绍

1.1 Struts

Struts是一个基于Java的MVC(Model-View-Controller)框架,主要是采用Servlet和JSP技术来实现[1],该框架主要由三部分组成。

模型(Model):是一个Action类,通过它来实现商业逻辑,用户请求通过struts-config.xml文件描述的配置信息实现控制器(Controller)向Action的转发。

视图(View):View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用它们可以快速建立应用系统的界面。

控制器(Controller):本质是Servlet,主要功能是将客户端请求转发到相应的Action类。

1.2 Spring

Spring是轻量级的Java EE应用程序框架。Spring的核心是实现了IoC(控制反转)模式和AOP(面向切面编程)的容器,Spring的目标是实现一个全方位的整合框架,实现多个子框架的组合,提供一站式的框架整合方案[2]。

1.3 Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库,完成数据的持久化[3]。

总的来说,传统的Java EE采用EJB(企业Java Bean)为核心,以应用服务器为运行环境,开发和运行的成本较高。由Struts+Spring+Hibernate构成的SSH框架是Java EE的一个轻量级框架,它具备Java EE规范的种种特征,具有良好的面向对象建模的思维方式、优秀的应用分层及良好的可扩展性和可维护性,目前已经成为Java EE的一种更广泛的开发规范。SSH集成框架与技术结构如图1所示[4]。

2 系统设计与实现

2.1 系统功能

系统主要实现用户信息导入、在线刷卡、账户查询、账户充值和账户管理等相关功能。功能模块构成如图2所示。

⑴ 用户信息导入:通过后台管理批量导入学生基本信息,如学号、姓名、初始密码等信息。

⑵ 在线刷卡:用户在就餐消费时刷卡,系统读出用户的账户余额,如果余额充足,将从账户余额中减去本次就餐的费用,并显示本次就餐发生费用和用户账户余额。

⑶ 账户查询:查询用户就餐费用的历史记录以及余额的情况。

⑷ 账户充值:管理员收到学生的餐费后对用户的账户进行充值,即把收到的餐费与学生账户的余额进行累加。

⑸ 用户账户管理:可以对学生账户进行删除和修改。

2.2 系统架构设计

本系统采用的是四层B/S结构,包括表示层、业务逻辑层、数据访问层和数据层。

表示层主要采用Struts构架,实现MVC模型中的视图和控制部分。

业务逻辑层主要使用Spring框架实现。Spring框架使用依赖注入的方式,使业务逻辑组件在运行期被注入到容器中,利用Spring框架的AOP功能,从面向方面更好地降低系统中各个组件之间的耦合性[5]。另外,Spring的事务管理功能在在线刷卡模块也得到很好的应用。

数据访问层使用Hibernate框架实现。在该层主要完成实体“对象-关系”映射的建立,通过这个映射访问业务对象,即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的数据库访问程序,简化了对数据库的访问,提高了开发效率[6]。

数据层主要是数据库,本系统中使用MySql数据库。

2.3 具体实现分析

因篇幅限制,以下仅从众多模块中选择账户充值模块来说明SSH架构开发的具体流程。

2.3.1 利用Struts框架建立视图和控制器

⑴ 建立视图

在MVC模式中,视图负责显示从模型中采集的数据,也负责用户输入的数据和请求的传递,并将这些数据和请求传递给控制器和模型,在Struts框架中,视图部分主要包括JSP页面和ActionForm[7]。JSP页面用来显示模型中的数据,收集用户输入的数据以及提交用户的请求。ActionForm的实质是实体JavaBean,在Struts中专门用来传递表单数据。

下面是账户充值JSP页面、ActionForm和控制器的部分关键代码:

AccountFunding” method=”post”>

⑵ 建立控制器

控制器的功能是将客户端请求转发到相应的Action类[8],控制部分包括配置文件web.xml、struts-config.xml和相应的Action类。下面是控制器的部分关键代码:

action

org.apache.struts.action.ActionServlet

action

*.do

name=”accountFundingForm”

type =”com.szjm.action.accountFundingAction”

parameter=”method”>

上述代码显示,在struts-config.xml文件中定义了一个元素,用来处理账户充值的请求,通过账户充值的JSP页面的“accountFunding.do?method=AccountFunding”这样的请求,就可以由AccountFundingAction来处理该请求,并将处理结果返回。

2.3.2 建立模型

SSH中的模型包括可重复利用的实体JavaBean、系统的业务逻辑以及对数据库的访问方法。建立的模型最终通过Spring依赖注入的方式,在运行期被注入到容器中等待调用。

⑴ 实体JavaBean类

本系统实体主要由学生账户类(Account.java)、学生类(Student.java)和管理员类(Manager.java)构成。

Account类:表示业务中的学生账户。

Student类:表示业务中的学生。

Manager类:表示业务中的管理员。

以上实体类均可以通过Hibernate DAO(数据访问对象)对它们的操作来实现对数据库中相应表的操作。

⑵ 建立业务逻辑类

业务逻辑类主要完成应用中所需要的一些业务方法,有业务逻辑接口和相应的实现类构成。本系统的业务逻辑接口有两个,即IStudentService和IManagerService,分别对应了与学生相关的业务逻辑以及餐费管理员相关的业务逻辑。与业务逻辑接口对应,系统中定义了实现这两个业务逻辑接口的实现类,即StudentServiceImpl和ManagerServiceImpl类。

⑶ 建立DAO类

DAO类主要完成对数据库的访问,可以借助Hibernate来实现。传统对数据库的访问是通过JDBC来完成,但是,使用JDBC访问数据,SQL语句比较复杂且难以理解,重复代码较多,而使用Hibernate可以解决这些问题。Hibernate通过访问对象的方法来实现对数据库的访问,在访问中使用HQL语句来访问对象,使程序和开发变得简单。下面简单介绍建立DAO类的步骤。

① 建立“对象-关系”映射文件

在餐费管理系统中,根据业务实体和数据库中的表,需要建立如下三个“对象-关系”映射文件。

Account.hbm.xml:表示Account对象和account表之间的对象-关系映射文件。

Student.hbm.xml:表示Student对象和student表之间的对象-关系映射文件。

Manager.hbm.xml:表示Manager对象和manager表之间的对象-关系映射文件。

对象-关系映射文件建立后,在进行数据访问时就可通过访问业务实体对象来访问数据库。

② 建立DAO类

系统中DAO类可通过Hibernate Synchronizer工具自动生成,包括StudentDAO、AccountDAO和ManagerDAO类,这三个类都分别实现了接口IStudentDAO、IAccountDAO和IManagerDAO。这些DAO类主要是实现对数据库查找、保存、更新和删除等功能。

2.3.3 使用Spring装配组件

前面介绍的Action类、Service类和DAO类,这些类在传统的做法中,通常是在代码中通过互相调用组织在一起,这样做导致类之间的耦合度较高,一旦某些代码发生了改变,就需要对各个耦合的程序进行重新编译,维护的工作量很大。使用Spring来对它们进行管理,可以很好地解决这些问题。

⑴ Struts和Spring集成

通过Struts和Spring的集成,Struts中Action就可以被Spring进行管理,从而实现了在运行期对Action的依赖注入。Struts和Spring的集成可通过在Struts-config.xml中加入以下代码实现。

.ContextLoaderPlugIn”>

/WEB-INF/applicationContext.xml”>

⑵ 建立applicationContext.xml文件

applicationContext.xml是Spring的配置文件,该文件的主要功能是将Action类、Service类和DAO类进行装配,实现数据源的配置、SessionFactory的创建(主要用来实现Hibernate的初始化)、事务管理和业务逻辑事务的配置等功能。

ssh框架范文4

关键词:Struts;Hibernate;Spring;运输企业;安全管理系统

中图分类号:TP311.52文献标识码:A文章编号:16727800(2011)012007403

作者简介:饶锡如(1979-),男,重庆人,硕士,重庆市汽车运输(集团)有限责任公司工程师,研究方向为企业信息化和电子政务。

0引言

对于长途汽车客运企业而言,车辆的安全营运管理在企业管理中处于绝对核心地位。特别是随着企业公车化经营范围的不断扩大,运输企业对安全营运的压力陡增,传统的管理方式难以跟上安全管理的新形势、新要求。因此,运输企业迫切需要建立安全管理信息系统来弥补管理上的疏漏,有效发现安全隐患,从而降低安全事故发生的几率,并不断完善安全管理工作的长效机制。

1系统需求分析

针对运输企业的行业特点,安全管理系统主要是对人、车、路(即驾驶员、车辆、道路状况)进行管理和评估,并对安全隐患进行预警。系统的主要需求如下:

(1)驾驶员管理:驾驶员基本档案、驾驶员的资质准入、驾驶员的清退、驾驶员的事故处理、驾驶员的违法记分、驾驶员的安全学习、驾驶员的技能培训等。

(2)车辆管理:车辆基本档案、车辆的二级维护、车辆的保险、车辆的临时检查(包括路检、路查)、车辆的月检、车辆的检测、车辆超速记录(数据从已有的GPS系统中提取)、车辆驾驶员指派等。

(3)线路管理:线路基本信息、线路的查勘、路况的分段记录等。

(4)安全预警管理:预警参数的设置、手机短信群发等。

(5)其他管理:安全管理人员基本档案、安全管理组织结构、安全法规及制度、安全统计报表、安全会议、安全预案及演练、安全投入、安全文件发放、消防安全检查等。

2系统设计

SSH整合架构在轻量级Java EE企业级开发中处于主流地位。其中Struts实现了MVC模式,能够将应用的模型、视图、控制器这3个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。Hibernate可实现对象/关系数据库的映射,从而既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的优势,提高开发数据库应用的效率。Spring则为企业应用的开发提供了一个轻量级的解决方案,其中最主要的是基于依赖注入的核心机制, Spring贯穿整个表现层、业务层、持久层。 SSH框架的整合开发在保留了Java EE应用架构的高度扩展性、高度可维护性的基础上,降低了Java EE应用的开发、部署成本。因此,安全管理系统采用SSH框架进行设计和开发,安全管理系统设计框架如图1所示。

图1安全管理系统设计框架

(1)数据持久化层:包括了安全管理系统数据库服务器(本系统采用Linux操作系统和MySQL数据库)等相关数据库服务器。

(2)ORM层:通过Hibernate实现Java对象和关系数据库之间的映射,并对JDBC进行轻量级的封装,对业务控制层提供数据CRUD操作的API接口。

(3)业务控制层:在DAO中通过继承HibernateDaoSupport类,调用getHibernateTemplate()方法返回一个hibernateTemplate对象,根据O/R映射文件进行数据的CRUD操作,从而实现业务逻辑功能,并通过接口调用的方式在Action中实现控制功能,再在struts.xml中进行相应视图跳转的配置。

(4)应用层:用户与系统交互实现业务功能,并通过Ajax和DWR框架使得Web开发人员可以在JavaScript中像使用浏览器的本地代码一样使用Java代码,这些Java代码是运行在服务器端并且可以自由访问Web服务器资源,这样可以大大增强用户体验。

通过Spring的注入依赖特性实现Struts和Hibernate的无缝整合。Spring的IoC(反转控制)模块提供了一种无侵入式的高扩展性框架来管理业务组件,由容器控制组件之间的关系,通过Spring实现类间调用的松耦合,使整个系统具有后期的可维护性和扩充性,能及时适应需求的变更。

3系统主要功能模块的实现

3.1SSH基础框架搭建

(1)applicationContext.xml配置文件片段

(2)strutsaction.xml配置文件片段

pages/driver/driver_browse.jsp

pages/driver/driver_learn_browse.jsp

pages/driver/driver_create.jsp

……

(3)*.hbm.xml配置文件片段

……

3.2图表报表分析功能的实现

安全管理系统通过对安全事故因子频率的统计,从中挖掘导致事故发生的潜在因素,用于指导安全管理工作的决策,其中的事故因子包括了时间区间、路况、事故类型、瞬时速率、GPS轨迹等。安全系统采用用于ETL的kettle工具进行数据的清洗和抽取,报表的开发采用iReport工具,该工具能以所见即所得的方式来开发报表定义文件,该工具不仅能生成HTML格式的报表,还能生成PDF和Excel格式的报表。Struts对其提供了很好的支持,可以方便地实现报表功能。

3.3定时预警及短信群发功能的实现

安全管理系统需要对驾驶员受教育学时、资质年限、车辆月检、二级维护、保险到期、违规违法记分等信息进行预警。用户通过前台预警配置页面进行预警条件的定义,后台程序将其拼接成SQL语句存入库表,系统通过定时轮询该SQL语句扫描数据库,一旦检索出预警数据,将预警信息在首页通过浮动框进行显示,并调用第三方设备短信猫接口发送手机短信通知相关管理人员。在本系统中的定时轮询机制采用JDK类库中的Timer类实现,Timer类是一种线程设施,可以用来实现在某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行。而TimerTask类用来实现由Timer安排的一次或重复执行的某一个任务,Tasks.java代码片段如下。

……

timer = new Timer();

Calendar cal = Calendar.getInstance();

cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(s[0]));

cal.set(Calendar.MINUTE, Integer.parseInt(s[1]));

cal.set(Calendar.SECOND, Integer.parseInt(s[2]));

timer.schedule(new WarningTask(sce.getServletContext()), cal.getTime(),Integer.parseInt(s[3]));

……

3.4安全系统的部署与运行

将安全系统部署到Tomcat服务器中并启动Tomcat,在IE地址栏中输入localhost:8080/ts,登录系统后显示安全系统主页面如图2所示:

图2安全系统主页面

该系统通过压力测试,运行良好,稳定可靠。通过实际运行表明,该系统满足用户的功能需求,性能表现较好。

4结束语

基于SSH框架实现的运输企业安全管理系统投入实际运行以来,促进了安全管理工作的规范化、有效避免了安全隐患,达到了运输企业科学管理的目的。基于SSH框架的安全管理系统所具有的可维护性和扩展性,能快速适应未来业务需求的变更,降低维护成本。参考文献:

[1]李刚.轻量级Java EE企业应用实战(第3版)[M].北京:电子工业出版社,2011.

[2]郭广军,谢东,陈利品.基于SSH整合架构的教学支持系统设计与实现[J].计算机工程与设计,2009(13).

[3]王宝龙,李子扬,李晓辉.基于SSH框架和DWR技术的减灾卫星运行管理系统建设[J].计算机工程与设计,2010(23).

[4]陈农心,凌财进.基于SSH2的新型网上平台的设计与实现[J].制造业自动化,2011(3).

Design and Implementation of Transport Enterprise

Safety Management System Based on SSH Integration Frame

ssh框架范文5

SSH是多个框架(struts+spring+hibernate)的集成,一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持。Spring一方面作为一个轻量级的IoC容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使Struts和Hibernate更好地工作。

此银行业务资料管理系统主要采用B/S结构,前台使用jsp,后台使用java,采用JDK1.8编译器,JRE8.0下运用MyEclipse开发工具,采用tomcat服务器,以SQL Server 2012为后台数据库。

银行业务资料管理的特点要求系统具有很强的安全性和独立性,能够真实、完整的保存电子档案信息,严谨规范得进行档案管理,同时可以进行丰富的数据查询。

一、设计目标

银行业务资料管理系统主要解决潜在客户在信贷资料管理方面普遍存在的需求,该系统的建设目标如下:

1.实物档案电子化,满足不同信贷档案及其不同类型和关键字的存储和调阅。

2.实现联机调阅,同时满足对打印、导出、编辑、批注等功能的权限控制。

3.建立起档案备份机制,按照档案的流转状态,对等待归档、已归档的档案加以区分,并对下架档案转移备份区,建立多级备份机制,提供足够的仓储空间来满足业务增长的需求,并可以实现异地差异化备份,如:上海和深圳两个仓储中心的档案互备。

4.实现电子档案仓储管理,解决目前纸质档案调阅过程中造成的损坏和丢失问题。

5.系统内outlook邮件提醒,每个待处理任务都会有对应的outlook邮件。

6.与行内域用户同步。

二、设计内容

本系统通过对扫描仪对银行信贷资料备份,并按照银行业务需要进行管理,根据用户需求及研发需要,本系统应含有以下功能:

1.我的工作:待办任务指所有待处理的工作列表,包括借阅流程等。

2.影像处理:包括创建扫描任务、影像扫描、影像质检、影像补录过程。

3.档案结清:能够标示档案实际结清日期,并能够对已结清档案进行移库。

4.档案检索:包括档案基本查询。

5.档案借阅:包括借阅申请、借阅审批、当前借阅、历史借阅等。

6.授权管理:包括授权、授权撤回。

7.业务审批:包括业务申请、业务审核、申请记录。

8.系统管理:包括机构管理、用户管理、角色管理、权限管理、系统日志、资源管理、字典管理、公告管理、基础数据定义。其中机构管理包括删除部门和管理部门,用户管理包括管理用户和删除用户,角色管理包括删除角色和管理角色,权限管理包括保存资源分配,基础数据定义包括文档类型组定义、文档类型定义和扫描队列定义。

三、功能框图

ssh框架范文6

(西安交通大学数据与信息中心,陕西西安710049)

摘要:通过对高校科研管理现状的分析与研究,运用基于Struts,Spring和Hibernate的轻量级Web集成开发框架,并结合Ext 富客户端技术,从科研管理的基础数据组织入手,认真分析科研业务管理流程及信息交互特点,最终构建高效、灵活和稳定的高校科研管理信息系统。该系统实现了科研管理的网络化和数字化,有效提高了信息的集成效率,提升了科研信息精细化管理水平。

关键字:科研管理;SSH;Ext;精细化管理

中图分类号:TN911?34 文献标识码:A 文章编号:1004?373X(2015)20?0052?03

Research and application of scientific research management system based on Ext +SSH

Integrated development framework

GAO Zhan,SUO Zhihai

(Data and Information Center,Xi’an Jiaotong University,Xi’an 710049,China)

Abstract:In this paper,the current situation of research project management in universities is studied. Proceeding from ba?sic data organization of scientific research management,the scientific research management procedures and information interac?tion characteristics are analyzed by using light?weighted Web integrated development framework based on SSH(Struts Spring Hi?bernate) and rich client technology of Ext. Finally,a scientific research management system based on Ext+SSH integrated de?velopment framework with the advantages of reliability, efficiency and flexibility was constructed. The digitization and net?working of scientific research management were achieved by means of the system,which improve the efficiency of information in?tegration and promote the level of scientific research information management.

Keywords:scientific research management;SSH;Ext;delicacy management

学校科学研究能力的发展是制约高校整体办学水平的重要因素,对于建设“研究型大学”更是具有举足轻重的作用。近年来,随着学校科研工作范围和规模的迅速扩大,信息交互频繁,科研业务的复杂度日益增大,这就要求科研信息要做到快速流转和有效管理,为了满足科研管理系统建设的实际要求,构建了基于Struts,Spring,Hibernate 轻量级集成开发框架和Ext 富客户端技术的高校科研管理系统,为科研工作提供了重要保障。

1 SSH 和Ext 框架介绍

1.1 基于SSH的Web系统开发框架介绍

SSH 是一种基于J2EE 技术的MVC 软件开发框架,与J2EE 重量级体系相对应,轻量级Web框架SSH 不仅保持了J2EE的优势(例如事务管理),还简化了Web的开发[1],提高开发效率。SSH 集成框架从逻辑上分为三层:表示层、业务逻辑层、数据持久层[2]。系统架构图如图1所示。在表示层,Struts 作为系统的整体基础架构,它利用控制器分离模型和视图,把用户界面和事务逻辑进行分离,从而极大地缩短了开发时间。在数据持久层,Hibernate 框架对JDBC 进行了轻量级的对象封装,将数据库表通过配置文件映射成对象。程序开发人员无需关心数据库的具体结构,直接操作数据对象即可。Spring 管理Struts 和Hibernate,通过Spring 的反转机制,利用容器来创建对象,即在运行期间将对象的依赖关系注入到组件之中,使得应用代码可直接使用实例。

1.2 基于Ext的富客户端技术

Ext是一个基于纯HTML/CSS+ JavaScript技术的开源的富客户端应用程序框架,它与后台开发技术无关,可以用在多种开发语言的开发应用中,使B/S应用更具有活力和生命力,大幅度提升了用户体验。Ext提供了丰富的跨浏览器UI组件,灵活采用JSON和XML为交换格式,减轻了服务端表示层的负荷,从而达到客户端的RIA 应用[3]。Ext还提供了丰富的学习文档和方便易查的API文档,方便开发者查询和使用。

Ext 在开发中主要使用到Application,Controller,Viewport,View,Store,Model 和Data 七大类[4],其逻辑关系如图2 所示。Application 控制Ext 到找对应Con?troller 与View 等Javascript 文件;Controller 用来实现View 上的所触发事件和操作,并将对应的View,Store ,Model 进行关联;Model 和Store 是模型数据类,主要是给View类提供数据;View主要负责页面展示。

2 科研管理系统的设计与实现

2.1 科研管理系统的功能模块设计科研管理系统的设计与开发以“高效管理、服务师生、信息共享、公正公开”为建设目标,以科研管理的内容、流程为中心。从管理内容的覆盖范围来看,科研管理系统的主要分为了科研项目管理、科研成果管理、经费管理、科研问题管理、科研机构管理、科研办公管理功能、统计管理、专家库管理、基地管理等9大功能模块。各个功能模块具有相对独立性,同时也相互联系。从服务对象来看,为校领导、学院、科研基地、教师、科研管理人员5大服务对象提供全方位的服务。

2.2 基于Ext和SSH集成框架的系统架构设计良好架构的选择对提高项目的开发效率有着重大影响。基于Ajax 的Web 应用程序打破了传统Web 程序开发模式,大大提高了程序的可用性用户体验。因此SSH和Ext的组合构建了一个具有健壮架构体系和具有良好用户体验的Web系统开发架构[5]。

Ext+SSH 集成架构整合的基本原理如图3 所示。

Ext 实现Struts 框架中的页面表示和页面跳转,管理界面上的各种操作事件,同时做出相应的响应,由于其提供了丰富的UI 组件,并采用JSON 数据格式传输数据,提高程序员的开发效率[6]。在业务层,Spring实现MVC三层分离,控制各层负责不同的任务,协作完成一次完整的请求/响应。在数据持久层,Hibernate 实现数据库表到Java类的映射,简化数据库事务管理。

2.3 关键技术的实现

Ext框架拥有丰富的组件,而且创建组件的方法也非常简单,可以直接通过new 关键字来创建,比如创建一个窗口,可以使用new Ext.window(),创建一个表格可以使用new Ext.grid.GridPanel()。在本系统中,用户登录后的首页面板显示了用户基本信息,科研通知公告,代办事宜等信息,它们可以通过拖拽的方式调整位置,这里采用的Ext的Ext.ViewPort组件来实现页面布局,它可以随着浏览器的大小而自适应。部分核心代码如下所示:

科研数据不仅数量大,而且数据关联性也较强,在每个数据列表上建立快捷查询项是非常必要的,如图4所示。

图4 Ext的panel组件实现快捷查询页面

以下代码是利用Ext的panel组件实现的快速查询页面的代码:

3 结语

采用Ext+SSH集成架构开发的科研管理信息系统,结构清晰,快速高效,可维护性和灵活性较高。目前该系统已在西安交通大学科研院的科研管理工作中得到了应用,体现了“人性化操作”的设计理念,充分兼顾了校领导、科研管理人员、教师等用户的不同需求,实现了与校园信息化平台的其他应用系统对接,提升了学校科研管理能力和水平。

参考文献

[1] 邵雄凯,杨京涛.基于Struts,Spring和Hibernate的集成框架研究[J].软件导刊,2007(23):25?28.

[2] 张玮,陈为.基于Struts+Spring+Hibernate框架的探讨与研究[J].长春大学学报,2006(12):75?80.

[3] 王晓燕,宋绍云.Ext的组件体系结构研究[J].电脑知识与技术,2011(9):1999?2002.

[4] 田建伟,黎曦,刘潇潇,等.基于Ext和SSH 开发架构的电力生产信息系统的研究与应用[J].湖南电力,2014(2):16?19.

[5] 郭永乐,刘列根,张宇.基于轻量级框架构建Web应用[J].电子技术应用,2007(4):78?90.

[6] 王渊,怀自国,罗怡桂.基于Ext+Spring+Hibernate的Web系统开发架构的研究与应用[J].计算机与现代化,2009(12):78?81.

上一篇理财知识

下一篇听后感