(计算机软件与理论专业论文)基于ssh软件构架的地井信息处理平台设计.pdf_第1页
(计算机软件与理论专业论文)基于ssh软件构架的地井信息处理平台设计.pdf_第2页
(计算机软件与理论专业论文)基于ssh软件构架的地井信息处理平台设计.pdf_第3页
(计算机软件与理论专业论文)基于ssh软件构架的地井信息处理平台设计.pdf_第4页
(计算机软件与理论专业论文)基于ssh软件构架的地井信息处理平台设计.pdf_第5页
已阅读5页,还剩94页未读 继续免费阅读

(计算机软件与理论专业论文)基于ssh软件构架的地井信息处理平台设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

兰州大学硕士学位论文 摘要 随着网络技术的迅速发展以及先进软件平台j 2 e e 的广泛采用,基于m v c 开 发模式的多层w e b 应用已成为主流,而相应的s s h ( s t r u t s + s p r i n g + h i b e r n a t e ) 框架也引起了学术领域和应用开发领域的广泛关注。软件重用是提高软件开发效 率的最有效方法之一,以重用的思想指导整个开发过程更为关键,而框架是解决 软件重用最好的方法之一。 论文在对s s h 框架进行认真分析、研究的基础上开展了以下工作: l 、在分析s t r u t 6 、s p r i n g 和h i b e r n a t e 的工作原理、体系结构、封装机制 的基础上,重点研究了s t r u t s 和s p r i n g 框架的整合,以及s p r i n g 和h i b e r n a t e 框架的整合。 2 、基于m v c 模式对地井信息处理平台进行详细的系统需求分析和系统设计, 并通过分层处理( a c t i o n s e r v i c e d a o - - d a t a b a s e ) 使整个系统结构清晰,功能 明确,更重要的是各层次之间相互独立,对某一层次的修改不会影响其他层次, 这点对大型系统来说尤其重要,因为层次独立可以根据业务的不同层次安排不同 的开发者,并且不同的开发者对其他层次的内容不需要很多的了解。 3 、基于s s h 框架对处理平台进行系统实现,以地井管理系统子模块为用例, 对框架的各个部分及他们之间的相互关系进行详细的分析,对启动容器到客户发 起请求最后到返回给浏览器相应的结果这一系列过程进行充分的研究。 经实际运用结果表明,s s h 框架对于中小型w e b 系统具有一定的通用性,而 且采用分层及模块化设计使系统具有较高的智能性、协作性、可重用性、可扩展 性的特点。 关键字: s t r u t s ,s p r i n g ,h i b e r n a t e ,m v c 1 1 1 兰州大学硕士学位论文 a b s t r a c t 、矾也t h er a p i dd e v e l o p m e n to fn e t w o r kt e c h n o l o g ya n dt h ew i d e s p r e a d a p p l i c a t i o no fj 2 e ef o ra d 忱n c e ds 0 1 a r ep l a t f o r m ,t h ew e ba p p l i c a t i o nb a s e d m u l t i - l e v e ld e v e l o p m e n tm o d e lo fm v ch a so c c u p yt h ed o m a i np o s i t i o n , t h e c o r r e s p o n d i n gf r a m e w o r ko fs s h ( s t r u t s + s p r i n g + h i b e r n a t e ) a l s oh a sa t t r a c t e d c o n s i d e r a b l ea t t e n t i o nf r o mt h ea c a d e m i cf i e l da n da p p l i c a t i o nd e v e l o p m e n tf i e l d s o f t w a r er e u s ei st h ee f f i c i e n tm e t h o dt o i m p r o v et h ee f f i c i e n c yo fs o f t w a r e d e v e l o p m e n t ,r e u s i n gg u i d et h ee n t i r ep r o c e s so fd e v e l o p m e n ti sm o r ec r i t i c a l ,w h i l e t h ef r a m e w o r ki so n eo ft h eb e s tw a y st os o l v es o r w a r er e u s e i nt h i sp a p e r , b a s e do nt h ea n a l y s i so ft h ef i a m e w o r ko fs s h ,w ec o n d u c ts e v e r a l w o r k s ,嬲f o l l o w s : 1 b a s e do nt h ea n a l y s i so fw o r k i n gp r i n c i p l e 、s y s t e ms t r u c t u r ea n de n c a p s u l a t i o n m e c h a n i s mo fs s h f o c u s i n go i lt h ei n t e g r a t i o no fs t r u t sa n ds p r i n g , a n dt h e i n t e g r a t i o no fs p r i n ga n dh i b e r n a t e 2 t h ed e t a i lr e q u i r e m e n t sa n dd e s i g no fw e l li n f o r m a t i o np r o c e s s i n gs y s t e m b a s e do nm v c ,t h r o u g ht h el a y e r e dp r o c 鼯s i n g ( a c t i o n - s e r v i c e - d a o d a t a b a s e ) c a n m a k et h es y s t e mw i t ht h e p r o p e r t i e so fc l e a rs t r u c t u r e , s p e c i f i c f u n c t i o na n d i n d e p e n d e n c ew i t l le a c ho t h e rl e v e l s t h ei n d e p e n d e n c ei sp a r t i c u l a r l yi m p o r t a n tf o r l a r g es y s t e m ,b e c a u s ed i f f e r e n td e v e l o p e rc a l ld ot h ed i f f e r e n tl e v e l w o r k sa n dt h e d e v e l o p e r sd on o tn e e dal o to f k n o w l e d g ea b o u to t h e rl e v e l s 3 t h es y s t e ma c h i e v eo ft h ep r o c e s s i n gp l a t f o r mb a s e do ns s h ,t a k et h ew e l l m a n a g e m e n ts u b s y s t e ma se x a m p l et oa n a l y s i st h ev a r i o u sp a r t so ft h ef r a m e w o r k a n dt h e i ri n t e r - r e l a t i o n s h i p d ot h ea n a l y s i so fs t a r tt h et o m c a tc o n t a i n e r , r e q u e s tb y c l i e n ta n dr e t u r nt ot h eb r o w s e r t h ep r a c t i c a la p p l i c a t i o nr e s u l t ss h o wt h a tt h ef r a m e w o r ko fs s hh a st h e c o m m o n a l i t yf o rs m a l la n dm e d i u ms i z e dw e bs y s t e m ,a n dt h el a y e r e da n dm o d u l a r d e s i g nm e t h o dc a nm a k et h es y s t e m w i t ht h ef e a t u r e so fh i g h i n t e l l i g e n c e , i n t e r o p e r a b i l i t y , r e u s a b i l i t ya n de x p a n s i b i l i t y i v 兰州大学硕士学位论文 k e yw o r d s :s t r u t s ,s p r i n g , h i b e r n a t e , m v c v 兰州大学硕士学位论文 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立 进行研究所取得的成果。学位论文中凡引用他人已经发表或未发表的 成果、数据、观点等,均已明确著名出处。除文中已经注明引用的内 容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对 本文的研究成果做出重要贡献的个人和集体,均己在文中以明确方式 标明。 本声明的法律责任由本人承担。 论文作者签名: 兰州大学硕士学位论文 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归 属兰州大学。本人完全了解兰州大学有关保存、使用学位论文的规定, 同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版, 允许论文被查阅和借阅;本人授权兰州大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和 汇编本学位论文。本人离校后发表、使用学位论文或与该论文直接相 关的学术论文或成果时,第一署名单位仍然为兰州大学。 保密论文的解密后应遵守此规定。 糍:馘聊虢嗍出- 鸭 兰州大学硕士学位论文 1 1 问题提出 第1 章绪论 随着网络发展,先进软件平台j 2 e e 的广泛采用,多层w e b 应用已成为主流, 但是对于其中的源码部分的理解还是不够的,许多程序员都是照搬文档,照搬其 他相似的程序在写代码,对框架的精髓,核心掌握的还是不够的。 1 2 相关概念及其关系 1 2 ij a v a 反射机制 j a v a 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所 有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获 取的信息以及动态调用对象的方法的功能称为j a v a 语言的反射机制h 钉。 1 2 2 d i g e s t e r 组件 o r g a p a c h e s t r u t s c o n f i g c o n f i g r u l e s e t 类决定d i g e s t e r 组件解析配置 文件并创建配置对象的规则。d i g e s t e r 组件主要的作用就是解析x m l 文件,将 x m l 文件转化为对应的对象n 1 。 例如a c t i o n s e r v l e t 中i n i t s e r v l e t0 方法。动态调用类中的方法。 7f 瓿建d i g e s t e r d i g e s t e rd i g e s t e r = n e wd i g e s t e r ( ) : 把当前的a c t i o n s e r v l e t 实例放入到解析堆栈中 d i g e s t e r p u s h ( t h i s ) ; d i g e s t e r s e t n a m e s p a c e a w a r e ( t r u e ) : d i g e s t e r s e t v a l i d a t i n g ( f a l s e ) : 注册系统中的d t d s 文件 f o r ( i n ti = o ;i r e g i s t r a t i o n s 1 e n g t h ;i + = 2 ) u r l u r l = t h i s g e t c l a s s o g e t r e s o u r c e ( r e g i s t r a t i o n s i + 1 ) ; 第l 页 兰州大学硕士学位论文 i f ( u r lf - n u l l ) d i g e s t e r r e g i s t e r ( r e g i s t r a t i o n s i ,u r l t o s t r i n g o ) ; ) ) d i g e s t e r 就会调用a c t i o n s e r v l e t 中的a d d s e r v l e t m a p p i n g ( ) 方法, 并传进去两个参数。 d i g e s t e r a d d c a l l m e t h o d ( w e b a p p s e r v l e t m a p p i n g ,竹a d d s e r v l e t m a p p i n g ”,2 ) ; d i g e s t e r a d d c a l l p a r a m ( ”w e b a p p s e r v l e t m a p p i n g s e r v l e t - n a r n e ”,o ) ; d i g e s t e r a d d c a u p a r a m ( ”w e b a p p s e r v l e t m a p p i n g u r l p a t t e r n ”,1 ) ; 处理w e b 默认的应用部署中文件w e b x m l i n p u t s t r e a mi n p u t = g e t s e r v l e t c o n t e x t o g e t r e s o u r c e a s s t r e a m ( ”厂w e b i n f w e b x m l ) ; d i g e s t e r p a r s e ( i n p u t ) ; 1 3 论文研究目标 本论文通过研究地井信息处理平台这个项目,加深对s t r u t s ,s p r i n g , h i b e r n a t e 三个框架的研究,同时加深对这三个框架之间的整合,更多的实现软 件的重用,节省程序员开发的时间和开发的准确性哺7 1 。 1 4 论文结构 1 :对容器和三个框架做简单的介绍。 2 :结合代码说明三个框架的具体实现和他们之间的整合。 3 :对地井信息处理平台做具体的分析。 4 :总结。 第2 页 兰些查堂堡主堂堡丝羔 2 1 运行框架的容器 2 1 1t e m c a t 核心类及作用 r 习 第2 章框架介绍 圈2 - 1t c m c m 棱心共关幕 c a t a l i n n :与开始关闭s h e l l 脚本交互的主类。 s e r v e r :是整个t o m c a t 组件容器,包含一个或多个s e r v i c e 。 s e r v i c e :s e r v i c e 是包含c o n n e c t o r 和c o n t a i n e r 的集合,s e r v i c e 用适当 的c o n n e c t o r 接收用户的请求,再发给相应的c o n t a i n e t 来处理。 c o n n e c t o r :实现某一协议的连接器,如默认的有实现 i t t p 、h t t p s 、a j p 协议的。 c o n t a i n e r :代表了介于客户与服务器之间的通信接口,负责将客户请求发 第3 血 庄奎 鱼网习回 兰州大学硕士学位论文 送给服务器,并将服务器的相应结果传递给客户。可以理解为处理某类型请求的 容器,处理方式一般把处理请求的处理器包装为v a l v e 对象,并按一定顺序放入 类型为p i p e l i n e 的管道里。c o n t a i n e r 有多种子类型:e n g i n e 、h o s t 、c o n t e x t 和w r a p p e r ,这几种子类型容器依次包含,处理不同粒度的请求。另外c o n t a i n e r 里包含一些基础服务,如l o a d e r 、m a n a g e r 和r e a l m 。: e n g i n e :e n g i n e 包含h o s t 和c o n t e x t ,接到请求后扔给相应的h o s t 在相应 的c o n t e x t 里处理。 h o s t :就是我们所理解的虚拟主机。 c o n t e x t :就是我们所部署的具体w e b 应用上下文,每个请求都在相应的应 用上下文里处理的。 w r a p p e r :w r a p p e r 是针对每个s e r v l e t 的c o n t a i n e r ,每个s e r v l e t 都有相 应的w r a p p e r 来管理。 可以看出s e r v e r 、s e r v i c e 、c o n n e c t o r 、c o n t a i n e r 、e n g i n e 、h o s t 、c o n t e x t 和w r a p p e r 这些核心组件的作用范围是逐层递减,并逐层包含。 l o a d e r :是被c o n t a i n e r 用来载入的各种所需c l a s s 。 m a n a g e r :是被c o n t a i n e r 用来管理s e s s i o n 池。 r e a l m :是用来处理安全里授权与认证。 2 1 2t o m c a t 启动过程 t o m c a ts e r v e r 处理一个h t t p 请求的过程,假设来自客户的请求为: h t t p :1 0 c a l h o s t :8 0 8 0 t e s t w i s l l o g i n j s p 1 :请求被发送到本机端口8 0 8 0 ,被侦听的t o m c a t 连接器c o y o t eh t t p 1 1 c o n n e c t o r 获得。 2 :c o n n e c t o r 把该请求交给它所在的s e r v i c e 的e n g i n e 来处理,并等待 来自e n g i n e 的回应。 3 : e n g i n e 获得请求l o c a l h o s t t e s t w is l 1 0 9 i n j s p ,匹配它所拥有的所 有虚拟主机h o s t 。 4 :e n g i n e 匹配到名为l o c a l h o s t 的h o s t ( 且p 使匹配不到也把请求交给该 h o s t 处理,因为该h o s t 被定义为该e n g i n e 的默认主机) 。 5 :l o c a l h o s th o s t 获得请求t e s t w is l l o g i n j s p ,匹配它所拥有的所有 第4 页 兰州大学硕士学位论文 c o n t e x t 。 6 - h o s t 匹配到路径为t e s t w i s l 的c o n t e x t ( 如果匹配不到就把该请求交 给路径名为的c o n t e x t 去处理) 。 7 - p a t h = t e s t w i s l 的c o n t e x t 获得请求l o g i n j s p ,在它的m a p p i n g t a b l e 中寻找对应的s e r v l e t 。 类。 8 - c o n t e x t 匹配到u r lp a t t e r n 为,i c j s p 的s e r v l e t ,对应于j s p s e r v l e t 9 :构造h t t p s e r v l e t r e q u e s t 对象和h t t p s e r v l e t r e s p o n s e 对象,作为参数 调用j s p s e r v l e t 的d o g e t0 或d o p o s t ( ) 方法。 1 0 :c o n t e x t 把执行完了之后的h t t p s e r v l e t r e s p o n s e 对象返回给h o s t 。 11 :h o s t 把h t t p s e r v l e t r e s p o n s e 对象返回给e n g i n e 。 1 2 :e n g i n e 把h t t p s e r v l e t r e s p o n s e 对象返回给c o n n e c t o r 。 1 3 c o n n e c t o r 把h t t p s e r v l e t r e s p o n s e 对象返回给客户浏览器。 第5 页 兰州大学硕士学位论文 2 1 3加载w e b x m l 顺序 1 :加载c o n t e x t p a r a m : 0 个或多个 1r 2 :加载过滤器- ( f d t e r ) : o 个或多个 1r 3 :加载s e r v l e t ( a c t i o n s e r v l e t 此 入口进入) :0 个或多个。 注:s e r v l e t 的l o a d o n s t a r t u p 值小 的先加载 1 r 4 :加载s e s s i o n - c o r t f i g ) 禹性( 设置 s e s s i o n 过期时间) : 只能有一个或没有 1r 5 :加载w e l c o m e f i l e - l i s t 属性( 默 认页面) :只能有一个项或没有 1r 6 :加载标签库( t a g l i b 属性) : o 个或多个 图2 2w e b j j h 载顺序 1 :加载上下文c o n t e x t p a r a m 。为了以后在s p r i n g 中得到b e a n ,配置如 第6 页 兰州大学硕士学位论文 下: e o n t e x t c o n f i g l o c a t i o n w e b i n f c l a s s e s a p p l i c a t i o n c o n t e x t x m l , w e b i n f c l a s s e s a p p l i c a t i o n c o n t e x t - a c c g i - s e c u r i t y x m l , w e b i n f c l a s s e s a p p l i c a t i o n c o n t e x t - - d a o x r n l , w e b i n f c l a s s e s a p p l i c a t i o n c o n t e x t - s e r v i e e x m l 2 :加载过滤器( f i l t e r ) : 收到客户端的一个请求时,在配置文件中定义的过滤器根据一定的条件 ( f i l t e r m a p p i n g ) 中的 ) 发生作用。每个过滤器都现实了 f i l t e r 接口,通过执行d o f i l t e r ( ) 方法达到过滤的效果,下面列举系统中的处 理字符的过滤器。 s e tc h a r a c t e re n c o d i n g e o m 1 0 9 i c l i n k w i s w e b a c t i o n c h a r a c t e r e n e o d i n g f i l t e r e n c o d i n g u t f 一8 e n a b l e t r u e 第7 页 兰州大学硕士学位论文 s e tc h a r a c t e re n e o d i n g * d o 3 :加载s e r v l e t 。系统中加载的是s t r u t s 本身所具有的一个a c t i o n s e r v l e t , 具体加载过程见s t r u t s 部分。 4 :加载s e s s i o n c o n f i g 属性表示s e s s i o n 过期时间,配置如下: 3 0 5 :加载w e l c o m e f i l e 一1 i s t 属性:配置如下: i n d e x j s p 6 :加载标签库( t a g l i b 属性) :0 个或多个,配置如下: h t t p :j p n e e c o m t a g l i b p a g e w e b - i n f s p l i t p a g e t l d 2 1 4t o m c a t 和s e r v l e t 组合 我们分析一下t o m c a t 与s e r v l e t 是如何工作的,首先看下面的时序图砸1 。 第8 页 兰州丈学硕士学位论文 幽2 3t o m c a t 和s e r v l e t t 作搋程 1 :w e b 客户向s e r v l e t 容器( t o m c a t ) 发出h t t p 请求。 2 :s e r v l e t 容器分析客户的请求信息。 3 :s e r v l e t 容器色u 建一个h t t p s e r v le t r e q u e s t 对象,将客户请求的信息封 装到这个对象中。 4 :s e r v l e t 容器创建一个l 札t p s e r v l e t r e s p o n s e 对象。 5 :s e r v l e t 容器调用h t t 弗e r v l e t 对象的s e r v i c e 0 方法,把 h t t p s e r v l e t r e q u e s t 对象与h t t p s e r v l e t r e s p o n s e 对象作为参数传给 h t t p s e r v l e t 对象。 6 :h t t p s e r v l e t 调用h t t p s e r v l e t r e q u e s t 对象的有关方法,获取h t t p 请 求信息。 7 :h t t p s e r v l e t 调用h t t p s e r v l e t r e s p o n s e 对象的有关方法,生成响应数 据。 8 :s e r v l e t 容器把 t t p s e r v l e t 的响应结果传给w e b 客户。 蚺9n 兰州大学硕七学位论文 2 1 5 s e r v l e t 容器与h t t p s e r v l e t 的交互 s e r v l e t 对象的a p i : 1 :i n i t 方法:负责初始化s e r v l e t 对象。 2 :s e r v i c e 方法:负责响应客户的请求。 3 :d e s t r o y 方法:当s e r v l e t 对象退出生命周期时,负责释放占用的资源。 一、创建s e r v l e t 对象的时机阳9 1 1 :s e r v l e t 容器启动时:读取w e b x m l 配置文件中的信息,构造指定的 s e r v l e t 对象,创建s e r v l e t c o n f i g 对象,同时将s e r v l e t c o n f i g 对象作为参数 来调用s e r v l e t 对象的i n i t0 方法。 2 :在s e r v l e t 容器启动后:客户首次向s e r v l e t 发出请求,s e r v l e t 容器 会判断内存中是否存在指定的s e r v l e t 对象。 3 :s e r v l e t 的类文件被更新后,重新创建s e r v l e t 。 二、销毁s e r v l e t 对象的时机 1 、s e r v l e t 容器停止或者重新启动:s e r v l e t 容器调用s e r v l e t 对象的 d e s t r o y 方法来释放资源。 a c t i o n s e r v l e t 的继承关系如下图所示,在容器加载s c r v l c t 时,如有多个 s c r v l c t 需要加载,根据顺序依次进行加载,加载a c t i o n s e 1 e t 的主要动作是读 取s t r u t s c o n f i g x m l 文件,并将文件的配置转化为需要的对象,这些对象在以后 的客户请求中用到。 第l o 页 兰捌丕兰堡主堂堡堡塞 m 2 - 45 e h 】d * i 目 w e bx m l 文件中的s e r v l e t 对象的配置节信息如下: s c r v l c t a c t i o n o r g a p a c h es t r a l sa c t i o n a c t i o n s e r v l e t c o n f i g w e b - i n f c l a s s e s s t r u t s c o n f i g x m l , w e b - i n f c l a s s e s s r u t s - c o r l f i g - m a i nx m l , w e b 一1 n f c l a s s e s s t r a t s - c o n f i g r e p o r tx m l , 搪】| 蔷一 蓊喜一 一 】| = 兰 一 兰州大学硕士学位论文 w e b i n f c l a s s e s s t r u t s e o n f i g - a d m i n x r n l d e t a i l 2 d e b u g 2 2 a c t i o n * d o 配置节信息的解析: s e r v l e t - n a m e :s e r v l e t 对象的名称 s e r v l e t c l a s s :创建s e r v l e t 对象所要调用的类 p a r a m - n a m e :参数名称 p a r a m - v a l u e :参数值 l o a d o i l s t a r t u p :s e r v l e t 容器启动时加载s e r v l e t 对象的顺序 s e r v l e t m a p p i n g s e r v l e t n a m e :要与s e r v l e t 中的s e r v l e t - n a m e 配置节 内容对应 2 1 6s e r v l e t 运行总结 l :启动t o m c a t ,加载w e b x m l 配置文件。 2 :启动s e r v l e t 的i n i t0 方法。加载资源。 3 :浏览器向w e b 容器发送h t t p 请求,s e r v l e t 调用s e r v i c e0 方法。在s t r u t s 第1 2 页 兰塑盔堂堡主兰堡堡塞 框架中就是调用d o g e t 0 或d o p o s t 0 方法。 4 :s e r v l e t 对象退出生命周期,调用d e s t r o y 0 方法,释放占用的资源 2 2 s t r u t s 框架 2 2 1s t r u t s 基本模型 h m r 蜊l 一j 萄屠 高点 氐 鲎 h 婵刻舯触i 2 0 1s t r u t s 的体系结构 e v t h t 阡r c q c s t 斟 u p d 日k h _ r i p r e p m 2 - 6 s 呲$ 筷 - 厂吾1 。砌1 哥 i :一j :一 v 。 m w m 啦 一怒基。i 圉2 j s 呲体系结构 1 3 “ 兰州大学硕士学位论文 2 。3s p r i n g 框架 2 3 1轻量级容器 s p r i n g 是一个轻量级的i o c ( 控制反转) 和a o p ( 面向切面编程) 容器框架这 句话概括了s p r i n g 的重要特点,具体的有妇,1 力: 1 :轻量级 2 :l o c 3 - a o p 4 :容器 5 :框架 2 3 2体系结构 1 :核心容器 2 :s p r i n g 上下文 3 :s p r i n ga o p 4 :s p r i n gd a o 5 :s p r i n go r m 6 - s p r i n gw e b 模块 7 :s p r i n gm v c 2 4h i b e r n a t e 框架 2 4 1h i b e r n a t e 优点 1 :面向对象思想操作数据库 2 :提供级缓存和二级缓存的缓存机制 3 :没有侵入性的轻量级框架 2 4 2h i b e r n a t e 实现 l :将应用从底层的j n d i j d b c j t aa p i 抽象出来,而让h i b e r n a t e 来处理 这些细节。 第1 4 页 兰州大学硕士学位论文 2 - h i b e r n a t e 通过s e s s i o n f a c t o r y ,t r a n s a c t i o n f a c t o r y , c o n n e c t i o n p r o v i d e r ,s e s s i o n ,t r a n s a c t i o n 来实现这些细节。 3 :通过t r a n s i e n to b j e c t s 和p e r s i s t e n to b j e c t s ,d e t a c h e do b j e c t s 的相互转化来实现数据库的变化。 第1 5 页 兰卅l 大学硕士学位论文 第3 章s s h 框架的具体实现 3 1s s h 架构工作总流程 整合后的架构工作总流程如图3 - i 所示【3 0 j i , 3 2 蚓 图3 1 :架构1 = 作流程搜 3 ,胁e r n a l e 部分1、 l h 警砖,卞d 3 o 崾一: 6 t 数据库 1 :浏览器向容器发送请求到总控制器。如增加,修改,删除,查询请求 般是发送d o 的形式。 2 :根据d o 请求在s t r u t s c o n f i g x m l 找到对应的a c t i o n 。 鲍1 6 页 兰州大学硕士学位论文 3 :根据a c t i o n 的i d 在上下文配置文件中相应的相应的j a v a 类。 4 :在s p r i n g 上下文配置文件找到与a c t i o n 相对应的d a o 的数据库操作文件 j a v a 类。 5 :d a o 调用数据库操作j a v a 类。 6 :操作数据库j a v a 类调用h i b e r n a t e 数据库操作类对数据库进行相应的操 作。 7 :将数据库操作结果返回到d a o 类,以便于d a o 类最后返回给调用它的 a c t i o n 类。 8 :将返回的结果与s t r u t s c o n f i g x m l 中的m a p p i n g 作比较,得到要返回给浏 览器的结果。( 可能0 次或多次重复前面的操作) 。 9 :根据前面得出的最后要返回的j s p 页面返回给浏览器。 第1 7 页 兰塑盔堂堡主堂堡堡苎 3 2 s t r u t s 框架的具体实现 3 2 1s t r u t s 框架概述 圉 。 唐 c ” ”座y e s o k c j 勰 ,】! r 咖m h o f m a lj s p o r 咖 目3 - 2s 岫t 作濂程田 第l s 贞 b i n 嘲l o g i c 叵富 兰州大学硕十学位论文 3 2 2s t r u t s 总体运行 m o d u l 嚷o n f i g l m p l m m a p 剐i c 砌, n 目m “k ht r e e t o p h m a n a y l i # 1 l g l , s e 删x 。麓勰篙 。甚删;嚣竺。 n 删峰时h m 删h k m * 9 w 臂 目3 0 s t m t s 总体运行 容器启动时:a c t i o n s e r v l e t 通过i n i t 0 方法1 1 3 2 1 。 1 :在w e bx m l 取得s e r v l e t 的c o n f i g 参数( s t m l s 配景文件名、,保存在 a c t i o n s e r v l e l 类的c o n f i g 变量中。 2 :调用a c i i o n s e r v l e t 类的i n i t 0 方法,通过d i g e s t e r 工具类和s t r u t s 配置文 件( c o n f i g 变量) 依次进行解析,把配置文件解析成m o d u l e c o n f i g l m p l 对象:把 q 3 的元素解析成a c f i o n c o n f i g 对象,依次保存在 a c t i o n c o n f i g s ,a c t i o n c o n f i g l i s t 变量中;j e 中的元翥解析 成f o r m b e a n c o n f i g 对象,依次保存在f o m 忸e a n s 变量中:把甜o b a l - f o r w a r d s 的 p 的元素解析成f o r w a r d c o n f i g 对象,依次保存在f o r w a r d s 变量中:把 e p 的元素解析成p l u g l n c o n f i g 对象依次保存在 p l u g i n s 变量中一把c o n 仰l i 盯肛元素解析成r e q u e s t p r o c e s s o r 对象,保存在 p r o c e s s o r 变量中。最后将这些变量封装在m o d u l c c o n f i g h n p l 中。 3 :通过s e t a t t r i b u t e ( ) g y 法将m o d u l e c o n f i g l m p l 保存7 e y - t 文中咀供后面 使用。 客户请求到达时:a c t i o n s e r v l c t 调用p r o e e s s ( h r p s c r v l e t r e u e s t , h t t p s e r v l e t r e s p o n s e ) 方法。 i :通过g d a 蹦b u t e ( ) 方法取得m o d u l e c o n i i g l m p l 对象,命名为c o n f i g 变量。 1 9 血 兰州人学硕士学位论文 化。 2 :通过c o n f i g 变量取得处理器p r o c e s s o r 。 3 :将s e r v l e t 和c o n f i g 两个变量传递给处理器p r o c e s s o r ,将p r o c e s s o r 初始 4 :执行处理器p r o c e s s o r 的p r o c e s s ( ) 方法。 3 2 3s t r u t s 保存对象 m o d u l e c o n f i g : 变量介绍【1 1 : 1 ) p r o t e c t e dh a s h m a pa c t i o n c o n f i g s ; 此模块的设置配置的行动,如果有的话, 2 ) p r o t e c t e dl i s ta c t i o n c o n f i g l i s h 此模块的设置配置的行动,如果有的话, 3 ) p r o t e c t e dh a s h m a pd a t a s o u r c e s ; 由p a t h 属性键控制。 在其中添加的顺序列出。 此设置j d b c 数据源配置模块,如果有的话,由关键属性键控制。 4 ) p r o t e c t e dh a s h m a pe x c e p t i o n s ; 处理这个配置模块的异常集合,如果有的话,该类型的属性键控制。 5 ) p r o t e c t e dh a s h m a pf o r m b e a n s 此模块的表格b e a n 的配置集合,如果有的话,该名称属性键控制。 6 ) p r o t e c t e dh a s h m a p f o r w a r d s 此模块全局f o r w a r d 配置集合,如果有的话,该名称属性键控制。 7 )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论