1 / 21
文档名称:

基于Spring+Struts+Hibernate的迎评促建网.docx

格式:docx   大小:220KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于Spring+Struts+Hibernate的迎评促建网.docx

上传人:科技星球 11/21/2022 文件大小:220 KB

下载得到文件列表

基于Spring+Struts+Hibernate的迎评促建网.docx

相关文档

文档介绍

文档介绍:该【基于Spring+Struts+Hibernate的迎评促建网 】是由【科技星球】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【基于Spring+Struts+Hibernate的迎评促建网 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。基于Spring+Struts+Hibernate的迎评促建网
 
 
Summary:开发迎评促建网是高校为迎接教育部本科教学评估需要面对的现实问题。首先,本文给出了迎评促建网的系统分析和模块设计;其次,从总体上介绍基于Spring+Struts+hibernate的开发架构的原理和层次结构;其次,以用户管理模块为例介绍使用该开发架构的全部开发过程;其次,给出该开发架构的开发规范;最后,对该开发架构的核心配置文件的关键技术给予说明。
Key:Spring;Struts;Hibernate;Web开发架构
:TP393:A:1009-3044(2008)18-20000-00
AWebsiteforWelcomingEvaluation&PromotingDevelopmentBasingonSpring+Struts+Hibernate
YANGGong-yi
(NewTechnologyResearch&DevelopmentOffice,ModernEducationTechnologyCenter,PekingUniversity,Peking,100871,China)
Abstract:Developingawebsiteforwelcomingevaluation&,thepaperintroducesthesystemanalyze&,,,,thepaperexplainsthekeyconfigfileskeytechnology.
Keywords:Spring;Struts;Hibernate;WebDevelopingFramework
1引言
迎评促建网在高校迎新教育部本科教学评估的过程中,起了重要的作用。一个优秀的技术架构能够规范开发者的行为,保证web系统开发的安全性、稳定性和成功率。目前OpenSource社区的Spring项目、Struts项目、Hibernate项目以及其他开源项目提供了优秀的第三方开发工具包,笔者将这些开发工具包整合在一起形成一个优秀的web开发架构。笔者开发的迎评促建网就是基于Spring+Struts+Hibernate(以下简称SSH)的web开发架构。
2迎评促建网系统分析与模块设计

迎评促建网是为了迎接教育部本科教学评估工作而建设的集信息发布、成果展示、审核、管理、用户浏览、文件下载、特定资源授权访问等功能于一体的专业网站。要求信息的编辑支持html在线编辑器功能,能够网上实现类似word
的排版、编辑功能、支持图文汇排、支持多媒体资源的上传和编辑。要求信息的上传要经过审核后才能正式发布。

对迎评促建网的系统分析,可以得出该系统由两大模块组成:用户管理模块和信息管理模块。用户管理模块的作用主要是用户信息的增、删、改、查、用户类别的管理。通过用户类别管理实现给不同类别的用户赋予不同权限。信息管理模块的作用是信息的增、删、改、查、信息类别的管理。通过信息类别管理实现让不同类别的信息属于不同的栏目。北大的迎评促建网的栏目信息类别分为:评建机构、评建文件、评建动态、评建简报、评建知识、教学成果、院系特色、教学改革、教师楷模、燕园学子、北大课堂、社会实践、友情链接。
完成迎评促建网系统分析与模块设计之后,接下来将以用户管理模块为例介绍基于SSH的轻量级J2EE技术架构,模块名称为Demo。因篇幅所限本文不再给出信息管理模块的详细细节。
3SSH架构介绍

在SSH架构中,系统结构大致分为三层,即数据持久层、事务逻辑层和WEB表现层。(1)数据持久层主要负责业务数据的持久化存储服务,目前我们采用HibernateO/RMapping技术实现;(2)事务逻辑层主要负责业务对象的转换传递、业务逻辑的组织及事务的控制等服务,同时事务逻辑层也是WEB表现层和数据持久层衔接的桥梁,WEB表现层通过事务逻辑层向持久层请求数据持久服务,目前这一层我们采用SpringFramework实现业务beans的依赖关系管理和
运行时注入以及事务的控制等功能;(3)WEB表现层是所有业务逻辑的最终展现层,充当事务逻辑层的客户端,实现人机交互,目前这一层我们采用Struts技术来实现。
整个架构的系统结构,如图1所示。系统各层的调用关系,如图2所示。
图1系统结构
图2系统各层的调用关系
在本系统中,用到的工具类开源项目有:Apachecommons-BeanUtil;Apachecommons-Lang;Apachecommons-Logging;Apachecommons-FileUpload;Dom4j;Log4j。用到的框架类开源项目有:Hibernate;Spring
Framework;Struts;Junit。关于这些项目的技术细节,不在本文的介绍范围之内。

包层次结构,如图3所示。
图3包层次结构
:该包是架构提供的一些全局通用程序,例如字符集设定Filter、一些预加载的Listener以及一些全局异常等。:该包是架构提供的一些和业务无关的工具类,例如xml的处理、文件加密、类型转换等。:该包是架构的基础组件,存放的是数据持久管理器(PersistenceManager)和Action的基
础抽象类(BaseAction),数据持久管理器是一个数据访问接口,目前提供了一个针对Hibernate的实现,可以实现基本的单表CRUD操作,同时对服务器端的数据分页访问提供了支持;BaseAction对Struts的DispatchAction进行了扩展,对Web层的数据分页显示提供了支持。:该包下存放的是用户管理模块的工程。
4开发过程
基于SSH的总体开发流程,如图4所示。下面我们就逐步来实现用户管理模块(Demo)。数据表结构,如表1所示。以下我介绍的开发过程是按照从后台服务开发到页面展现的顺序来进行的,在实际的项目开发过程中,某些开发环节的顺序可以按照需要进行调整。
图4基于SSH的总体开发流程
表1Demo的数据表结构

首先,先确认自己本地的JDK是否安装完毕,。我们把我们的工程命名为Demo,如果我们本地的工作目录是E:workspace,首先在工作目录下,新建一个名为demo的文件夹作为我们工程的工作目录。
接着,在demo下准备我们的如下目录结构src/edu/pku/demo/entity;src/edu/pku/demo/
service/;src/edu/pku/demo/service/impl;src/edu/pku/demo/web/action;src/edu/pku/demo/web/model;src/edu/pku/demo/test/service;src/edu/pku/demo/test/web。
再次,准备web工程的目录结构:demo/jsp;demo/images;demo/css;demo/logs;demo/js;demo/WEB-INF。接着我们把架构中提供的公共css文件、图片、js文件、架构依赖的第三方jar复制到刚刚建立的相应工作目录中,到此为止,我们的工作环境已经准备就绪,下面就可以进行具体的开发了。我这里的介绍不依赖于任何IDE环境,所以调试、编译、打包的过程我就
不具体进行介绍了,在开发过程中,可以选择任何自己熟悉的IDE工具进行开发,通常采用ant作为build工具。

这一步我们可以用工具生成,这里我给出一些工具供参考:tanghanpluginforeclipse;middlegen+hbm2java;MyEclipse;Xdoclet这些工具具体的用法不在本文介绍范围之内,在这一步我们生成的文件是:/
entity下。某些工具可能处理不了BLOB类型的字段,如果实体中存在这样的属性,在文件生成后,需要手工稍作修改。,然后通过SchemaExport来生成数据库DDL,这可根据开发人员的****惯恰当调整。
,编写UserService接口
在这一步的工作中,,,在接口中,声明了以下几个业务方法:
publicinterfaceUserService{
publicvoidsave(Useruser)throwsServiceException;//保存用户信息
因篇幅所限,这里省略其他的接口方法,包括:remove(longuserid)//删除单个用户,remove(Long[]userid)//删除多个用户,load(longuserid)//获取单个用户数据,uploadPhoto(longuserid,InputStreamis)//上传用户照片,byte[]getPhoto(longuserid)//获取用户照片数据,getUserList()//获取全部用户列表,getUserList(StringsKeyWord)//按照关键字查找用户,
getUserList(StringsKeyWord,intiPageNo,intiPageSize)//按照关键字返回用户列表,并分页。}

到此我们就该编写UserService接口的实现类了,在这个实现类中,主要完成以下功能:(1)组织业务逻辑;(2)调用FrameWork中的PersistenceManager接口进行数据存储访问。在实际开发过程中,大部分的业务逻辑将在此实现,也是本架构中代码量比较集中的地方。,。到此为止,后端服务部分的开发工作已经全部完成。
-*.xml中进行相关注册
完成了后台服务的编写后,我们就可以在Spring中对这些组件进行注册了。在这一步中,我们要完成以下工作:(1)(2)注册PersistenceManager接口和实现类(3)注册UserService接口和实现类(4)组件的依赖关系注入(5)配置声明式事务。目前架构中有3个spring的配置文件,分别是:(1)/WEB-INF/config/applicationContext-,(2)/WEB-INF/config/applicationConte
xt-service-,(3)/WEB-INF/config/applicationContext-。其中,一些基础公共资源配置在/WEB-INF/config/applicationContext-,例如,dataSource,sessionFactory等;service层的组件配置在/WEB-INF/config/applicationContext-service-,这里放demo模块的service和action;数据持久层的组件配置在/WEB-INF/config/applicationContext-,这里放PersistenceManager。

这一步可以作为需求分析阶段的一个工作成果,在这一步里我们生成了以下的系统界面原型,如图5、图6、图7所示。
图5用户列表、查询和删除
图6编辑用户