首页 > 范文大全 > 正文

SSH框架技术在文件系统中的应用研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇SSH框架技术在文件系统中的应用研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着软件开发技术的发展变化,为了加速软件开发进程、提高软件生产率、改变软件质量、便于项目维护,文中基于MVC模式提出J2EE技术平台四层体系结构,分别为表现层、控制层、服务层、持久层。研究和整合当前最流行的轻量级Struts,Spring,Hibernate (ssh)框架技术,Struts为构建Web应用程序提供了一个稳定、成熟的MVC框架,Hibernate是目前最流行的持久层解决方案,Spring为J2EE应用程序开发提供集成的框架。最后重点以文件上传模块为例说明SSH框架在文件系统中的应用。

关键词: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).

[9] 徐欣欣,艾飞,王艳宣.基于Web的无组件多文件上传方案的研究与实现[J].计算机工程,2005(12).

[10] 范新灿,赵明.基于Struts+Hibernate+Spring的轻量级架构开发应用研究[J].现代计算机:专业版,2010(1).