毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
J2EE基于Web实现公共信息和资料的发布管理和控制(6)
2.4 控制层
控制层的主要功能是实现视图层与模型层的匹配。它接收客户端发出的请求,并调用相应的模型组件进行处理,最后采用不同的视图显示处理结果。在这个过程中,对用户请求的分发和处理是控制层的核心。
通过第二章的介绍可知,Struts框架拥有一个结构清晰、功能全面、配置灵活方便的控制层结构。它通过ActionServlet作为中心控制器,依据配置文件对客户端请求进行分发和处理,从而实现视图层和控制层的良好衔接。通过其配置文件可以轻松地把握整个程序的逻辑结构。
但是,Struts中商业逻辑处理模块与封装了具体业务操作的模型层JavaBean之间存在的相互依赖关系,需要在类内部通过硬编码表示,这造成了模块间的紧耦合,不利于系统功能的复用和调试。而Spring框架具有的IoC容器,在对系统功能模块进行集中管理的同时,可以轻松实现模块间的解耦,其采用的依赖注入技术也是当前流行的软件设计模式,模块间的松散耦合也有利于系统的并行开发和单元测试。此外,Spring内置的AOP框架可以方便地为各功能模块提供声明式的事务管理功能,其模块化结构使它可以与其它框架很好的集成。
因此,本框架在控制层的设计中,采用Struts+Spring实现。框架的核心控制结构由Struts实现,利用它的请求分发处理机制实现视图层与模型层的匹配。同时,把Struts中的功能模块与模型层的处理模块委托给Spring的IoC容器进行管理,在保持系统功能结构清晰的同时,实现了模块间的解耦。
由控制层的设计可知,其核心处理结构依然采用Struts框架实现,但把逻辑功能模块及其依赖关系交由Spring的IoC容器进行管理。经过研究与分析,Struts框架与Spring框架的集成方式有如下三种:
(1)第一种集成方式:将模型层中的JavaBean交由Spring的IoC容器管理,在Struts的Action中,使用Spring的上下文对象WebApplicationContext访问容器中的JavaBean对象。这种方式是一种松耦合集成方案,其保留了Struts的控制结构,Action由Struts自行管理,Spring只是管理模型层中的JavaBean,并不影响系统的控制结构。采用这种集成方式,只需将Action中调用JavaBean执行业务逻辑的代码,改成调用Spring中的Bean执行业务逻辑代码即可。
(2)第二种集成方式:将模型层中的JavaBean交由Spring的IoC容器管理,Struts中的Action类继承Spring中的ActionSupport类。这种方式实际上是对第一种方式的改进,Spring的ActionSupport类提供了getWebApplicationContext()等方法,通过该方法,用户在编写Action时可以方便得取得Spring的上下文对象WebApplicationContext,从而通过它引用Spring中的Bean对象,这实际上是对第一种方式的简单封装。
(3)第三种集成方式:把Struts的Action和模型层中的JavaBean都委托给Spring的IoC容器管理。这种方式是一种紧耦合集成方案,它将Struts中Action的实现也放到了Spring的IoC容器中,从而方便利用Spring的IoC特性对Action、JavaBean及其依赖关系进行管理。
由于本系统使用第一种集成方式,见图下:图2-4 MVC结构示意图
该方式的配置方法如下:
在系统配置文件web.xml中声明一个监听器(Listener)或Servlet,其作用是在系统启动时读取Spring的Bean配置文件,初始化IoC容器。使用监听器名称为ContextLoaderListener。
监听器(Listener)是Servlet2.3版本以后才引入的功能,若使用的是Servlet2.2及以前版本的容器,则应该使用一个名为ContextLoaderServlet的Servlet完成相同的功能。
针对以上配置的Listener或Servlet还需要声明一个contextConfigLocation的参数元素,用以指定要加载的Spring配置文件的路径及名称,默认加载/WEB-INF目录下的applicationContext.xml文件。
共7页:
上一页
1
2
3
4
5
6
7
下一页
上一篇:
基于源搜索引擎的图片搜索研究
下一篇:
Web代理服务器的设计与实现
基于Apriori算法的电影推荐
基于PageRank算法的网络数据分析
基于神经网络的验证码识别算法
基于网络的通用试题库系...
python基于决策树算法的球赛预测
基于消费者个性特征的化...
论利用ebXML和SOAP开发Web服务【2352字】
公寓空调设计任务书
C#学校科研管理系统的设计
医院财务风险因素分析及管理措施【2367字】
中国学术生态细节考察《...
10万元能开儿童乐园吗,我...
志愿者活动的调查问卷表
AT89C52单片机的超声波测距...
神经外科重症监护病房患...
国内外图像分割技术研究现状
承德市事业单位档案管理...