1、1基于 SSH 框架兵器科技文献平台研究和设计 *王庆民 1 吴秀玲 2 张舒娟 3(1. 中北大学图书馆,太原,030051 2.中北大学图书馆,太原,030051 3.中北大学电子与计算机科学技术学院,太原,030051)摘要 采用 SSH 框架技术,对兵器学科的相关文献资源加工整理,研究和设计统一信息检索的兵器科技文献平台。首先给出了 MVC 设计模式和 SSH 的主要技术,然后提出了系统设计的功能模块和系统体系结构,最后,给出了系统设计的主要技术。关键词 SSH; MVC; 体系结构分类号 TP311.5The Study and Design on Weapons Techonolo
2、gy Document Platform Based on SSH FrameworkWANG Qing-Min1 WU Xiu-Ling2 ZHANG Shu-Juan3(1.Library of North Univeristy of China ,Taiyun,030051,China 2.Library of North Univeristy of China ,Taiyun,030051,China 3.School of Electronics and Computer Science Technology ofNorth Univeristy of China,Taiyun,03
3、0051,China)Abstract The paper introduces the SSH framework to process the documents of weapons subject, and to study and design the platform on weapon science document that has the function of unified information retrieval.The paper gives the design mode and the main technology of SSH, then the func
4、tion modules and architecture of system are put forwards, finally the paper gives the main technology of system.Key words SSH; MVC; Architecture1 引言科技文献资源是支持科技发展的基础,是实现科技创新和科技可持续发展的重要条件保障。随着山西省科技基础条件平台项目的建设的启动,我校作为该项目成员之一,根据我校的兵器学科的发展情况,将相关分散的资源进行加工整理,把兵器学科相关文献进行整合,形成一个同一的兵器科技文献平台。兵器学科作为我校及相关院校的重点学科
5、,目前没有同一的平台供师生使用,本文正是基于此,采用了目前最流行的SSH(Struts+Spring+Hibernate)框架,设计兵器科技文献平台。SSH 框架是 MVC 设计模式的一种技术,是一种轻量级的 J2EE 架构,它可以简化 WEB 的开发,而且能够使应用程序做到更好的松散耦合。该平台可以和山西省科技文献资源平台的进行搭建整合,科技文献资源平台的建成将为社会、经济、科技发展提供快速、准确、完整的科技信息。2 MVC 和开源框架 Struts、Spring、Hibernate 技术2.1 MVC 设计模式MVC(Model-View-Controller) ,即:模型-视图- 控制器
6、。模型层(Model)是指业务逻辑的处理和数据的存储,它接受视图请求的数据,并返回最终的处理结果。而且可以对数据持久化,实现视图和模型之间的交互支持。视图层(View )主要用来展现用户所需要的数据,是用户和系统进行交互的界面。它接受来自模型的数据并显示给用户,然后将用户界面的请求传递给控制和模型。控制层(Controller)其实就是一个控制分发器,它决定选择什么样的视图和模型,它接收用户请求,将模型和视图匹配在一起,共同完成用户的请求。使用 MVC 模式,可以将模型、视图与控制器分离,模型和视图可以多个对应,对应的关系可以通过控制器来改变,即不同的视图可以根据控制器改变不同的模型数据,从而
7、将改变的模型数据通过控制器更新视图。2.2 Struts 框架Struts 也是实现方式 MVC 模式的一种框架,对 Model、View 和 Controller 都提供了对应2的组件支持。Struts 的 Model 部分由 ActionForm 和 JavaBean 组成,其中用户的请求参数由系统自动封装成 ActionForm 对象,该对象被 ActionServlet 转发给 Action 处理用户请求。JavaBean 则封装了底层的业务逻辑,包括数据库访问等。Struts 的 View 部分主要采用了 JSP 和标签库实现。Controller 部分主要由核心控制器 Action
8、Servlet 和业务逻辑控制器组成。ActionServlet 是标准的 Servlet,拦截所有的 HTTP 请求,然后将请求转发给 Action 处理。业务逻辑控制器负责调用 Model 处理用户请求。2.3 Spring 框架Spring 为应用开发提供了一个容器,它是实现了控制反转(IoC) 、非侵入式的框架,并提供了 AOP(面向切面编程)概念的实现方式,提供对持久层和事务的支持。Spring 提供了MVC Web 框架的解决方案,可以很好的使用 Spring 提供的 IoC 和 AOP 的功能。使用 IoC(控制反转)可以将组件 Bean 的依赖关系的创建和管理置于程序的外部,高
9、层模块不依赖于底层模块,而是模块都必须依赖于抽象。因此,Bean 无需管理依赖关系,而是由容器注入,Bean 无需知道实例的位置及实现,这样可以降低组件之间的耦合关系。AOP(面向切面编程)是 OOP(面向对象编程)的一种补充,OOP 是从静态角度考虑程序结构,AOP 则是从动态角度考虑程序的运行过程。简单讲,AOP 可以在顺序执行的程序中,插入某些特殊的逻辑来实现一些特殊的功能。AOP 使用一种“横切”技术,剖解封装的对象的内部,并将那些影响了多个类的行为封装到一个可重用模块中,即切面(Aspect) ,也就是,将与业务无关但又为业务模块所共调用的逻辑封装起来,降低模块间的耦合度。OOP设计
10、模式解决了模块间的耦合,而 AOP 解决了某个模块内部的变化问题。2.4 Hibernate框架Hibernate 是对象 /关系映射(ORM,Object/Relational Mapping)的解决方案,也就是将Java 对象与对象关系映射至关系型数据库中的表格与表格之间的关系。Hibernate 不仅管理Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型的映射) ,而且还提供数据查询和获取数据的方法。在基于 MVC 设计模式中,Hibernate 一般作为数据访问层,通过配置文件(hibernate.cfg.xml)和映射文件(.hbm.xml)把 Java 对象
11、或持久化对象(PO)映射到数据库的表格,然后操作 PO 对数据表中的数据进行增、删、查、改等操作。3 系统功能及体系结构设计该平台模块主要由兵器科学专著模块、兵器学科学位论文模块、兵器科学专利模块、兵器科学专家模块、兵器科学研究机构模块、兵器科学图片视频模块、中外文电子资源等组成。每个模块数据库系统采用分布式设计,包含了文献检索、记录追加、编辑、删除等功能,各个模块主要是对兵器学科的出版物、博硕士论文、专利、学科专家、和相关兵器图片视频进行了收集和整理,由于相关兵器专业是我校的传统学科重点学科,所以主要收集了我校教职工其他研究人员的兵器学科的主要成果。中文电子资源主要是我校该买的包含兵器学科的
12、相关电子资源的镜像文件和远程链接。而且,每个模块的用户权限根据 IP 访问规则和开通用户权限的功能,分级进行处理,即不同的用户有不同的访问权限。根据其功能模块,设计体系结构如图 1 所示。3物理层业务逻辑层表示层兵器科技文献平台兵器科学专著模块兵器学科学位论文模块模块兵器科学专利模块模块兵器科学专著模块兵器科学专家模块模块兵器科学研究机构模块兵器科学图片视频模块中外文电子资源数据库 数据库 数据库 数据库 数据库 数据库 数据库 数据库PO PO PO PO PO PO PO PO 数据持久层图 1. 兵器科技文献平台体系结构DAO DAO DAO DAODAO DAODAO DAO DAO
13、组件层MVC 控制器 控制器层 struts2表示层就是系统 Web 主页面,提供给用户的各个功能界面,该层主要传递用户参数和系统数据,并将数据显示给用户;MVC 控制器层主要负责用户请求和业务逻辑组件间的交互;业务逻辑层主要是系统各个模块的主要功能,如文献检索、资源的添加、编辑、删除等操作;DAO 组件层封装了数据库的操作,所有的数据访问都由 DAO 对象完成,而且提供了各个持久对象的 GRUD 操作。数据持久层把 Java 对象或持久化对象(PO)映射到数据库的表格,然后操作 PO 对数据表中的数据进行增、删、查、改等操作;物理层主要是 Web 服务器、本地数据库、链接数据库的 JDBC
14、引擎以及各个电子资源数据库的镜像。4 系统设计关键技术在设计中,表现层主要由 JSP 页面组成;MVC 层主要使用 Struts 框架技术;业务逻辑层由 Spring IoC 容器管理组件组成; DAO 层由 DAO 组件构成;数据持久层由 Hibernate Session 管理 PO 完成数据库访问;数据库服务层使用了 SQLServer 数据库存储持久化数据;其中,业务逻辑层、DAO 层、数据持久层等组件都由 Spring IoC 容器负责生成并对其管理。开发平台采用了 MyEclipse7.1,服务器采用了 WindowsServer2003+Tomcat6.0,4.1 Struts、
15、Hibernate、Spring 的整合技术Spring 可以与 Struts 完全整合, Spring 整合 Struts 主要就是将 Struts 的 Action 类中的属性(通过 JavaBean 的 getXXX()和 setXXX()来规定)运行时通过 Spring 来注入(也就是赋值),要实现这一过程,就是将每个需要 Action 实例的地方都通过 Spring 来产生。4.2 Struts+Spring 的整合技术(1)在 Struts 配置文件中加入Spring 配置信息插件类名className指定加入Spring 的代理请求处理器;属性contextConfigLocat
16、ion的取值指定了哪些配置文件需要加载,这个插件可以让Struts 启动时创建 Spring 的核心Bean容器。(2)在Spring 配置文件中加入Action的bean 定义Spring整合Struts 的最后一步操作就是需要在 Spring的配置文件将对应的Struts Action类配置成一个bean,而且这个bean的name和Struts 配置文件中对应的action中的path值相对应,如LoginAction,要在Spring 配置文件applicationContext.xml 中加入如下的bean 定义:Spring Struts其中bean name 的取值一定要和 St
17、ruts 配置文件action中()的path的值相对应 。现在这个Action 类处于Spring 的配置和管理之下,就可以注入任意的属性以及以后可以加入的Service 层对象了,也就是可以完全把它看作一个普通的JavaBean 来处理。4.3 Spring+Hibernate 的整合技术Hibernate 可以与 Spring 结合进行对 PO 的访问和生成相应的 DAO 组件。Spring 提供了对多种数据库访问技术的 DAO 支持,其中 Spring 提供了HibernateDaoSupport、HibernateTemplate 、HibernateCallBack 接口来支持 D
18、AO 组件。在 Hibernate 的配置文件中定义了数据库的连接参数和要加载的数据表的映射文件,并生成了数据表对应的 POJO 类、映射文件及 DAO 类,同时我们在 Spring 的配置文件applicationContext.xml 中加入相应的 DAO 类引用如下:然后使用 Spring 的声明式事务提交功能并利用 IoC 容器中配置的 SessionFactory Bean,并使用控制反转功能将 SessionFactory Bean 注入 DAO 组件,DAO 组件获得 SessionFactory 中 Bean 的引用,就可以完成数据库的访问。此处我们使用了 Spring 的标注
19、事务提交功能,在 XXXDAO 类加入:import org.springframework.transaction.annotation.Transactional; 并在类的定义开始前加入:Transactional标记;在applicationContext.xml 配置文件中加入:检查是否有支持事务标注的bean 定义。5这样Sping结合Hibernate 就可以操作数据库。4.4 系统安全性设计系统中所有的用户请求(包括系统的超级链接和表单提交) ,都发送给 Struts 的 Action,由 Struts 的 Servlet 控制所有的请求处理和转发,而不是直接发送到 JSP 页
20、面。这样,可以避免直接访问 JSP 页面,提高了系统的安全性。另外,系统中的权限控制,可以在 Struts 的配置文件中为不同角色配置不同的拦截器进行控制,这样不同的用户角色可以具有不同的权限,而且减少了程序代码。数据库端采用存储过程调用,保证了系统的数据安全性。系统中用户登陆数据通过 MD5 加密算法保证用户登陆的数据安全性。此外在表单的输入验证方面采用了 struts2 的输入校验方法,采用了 XML 文件配置校验器,同时将XXXAction-validation.xml 文件与它所在的 Action 类文件放置同一目录下。这样可以减少Action 类的代码验证,提高程序输入的准确性和安全
21、性。5 结束语本文主要是使用了 SSH 框架技术,针对兵器科技文献资源进行研究和设计了统一的资源平台-兵器科技文献资源平台。该平台整合了兵器学科相关文献资源,可以对兵器学科相关文献资源进行检索,方便用户的查找和使用,同时,使用 SSH 框架技术可以使系统平台的安全性、可维护性,操作便捷性都有很大的提高。该平台可以和山西省科技文献资源平台的进行搭建整合,该平台的研究和设计,将为社会、经济、科技发展提供快速、准确、完整的科技信息。参考文献:1王琼,苏建华.北京地区高校图书馆网上参考咨询服务调查研究 .兼谈虚拟参考咨询服务J情报理论与实践,2005,(3):2782802 三扬科技. Struts2
22、 核心技术与 JavaEE 框架整合开发实践 M. 北京: 电子工业出版社,2008:2974353 邬继成. J2EE 开源编程精要 15 讲M. 北京:电子工业出版社,2008:257-2824 李刚. 轻量级 JavaEE 企业应用实战 Struts2+Spring+Hibernate 整合开发M. 北京:电子工业出版社,2008:533-7105 韩义亭,张成宇.SSH 架构及其在 web 开发中的应用 . 网络安全技术与应用J, 2007(10):72-746 陈尚松,杜旭英,俞欢军.基于Struts+Hibernate+Spring 框架的毕业设计管理系统. 计算机工程与设计J,
23、2008,29(15):4054-40567李刚. 整合 Struts+Spring+Hibernate 应用开发详解M. 北京:清华大学出版社,2007:331-4008 叶小乐. 基于Struts和Hibernate的图书馆重点学科导航系统 . 图书馆学研究J,2008(9):34-36项目名称:山西省兵器科技文献资源保障与服务中心平台 项目编号:2009091001-0905作者简介:王庆民:男,1976.12,硕士,助理官员,研究方向:系统软件,专业:计算机应用技术,发表相关论文 4 篇 联系电话:13834156763 E-mail:通讯地址:山西太原中北大学图书馆系统部 邮编:030051吴秀玲:女,中北大学图书馆馆长,教授,博士,研究方向:精密仪器及机械;6张舒娟:女,讲师,硕士,中北大学电子与计算机科学技术学院,专业:计算机应用技术。