从 SSH实例《在线考试系统》 看SSH系统分层模型

17 篇文章 0 订阅
7 篇文章 0 订阅

系统源代码  http://download.csdn.net/detail/yu422560654/4536270

系统有严格的分层,主要分为表现层、MVC控制层、业务逻辑层、DAO层和数据持久层。不同的层封装不同的应用组件,各层的组建以松耦合的方式组织在一起,提供更好的可扩展性。

表现层主要是JSP页面充当,负责收集用户的请求数据并提交到指定的控制器。当系统处理完用户的请求后,JSP页面还负责将处理结果呈现给用户。(禁用JSP页面的Java脚本可以保证JSP页面作为表现层的纯洁性)

JSP的所有请求都想Struts的ActionServlet发送,通过这种方式,Struts成为系统的前端控制器,所有的请求都将由Struts来处理。ActionServlet拦截到用户请求后,将请求转发到用户定义的业务逻辑控制器。

将所有请求都使用ActionServlet拦截还有一个好处,将所有的JSP页面都放在WEB-INF/路径下,可以避免用户直接访问JSP页面,提供了系统安全性。

当ActionServlet转发用户请求时,并没有转发实际的Action处理类,而是转发给Spring提供的DelegatingActionProxy类,这个类负责将所有的请求转入Spring容器内,而Struts原有的业务逻辑控制器则由Spring容器负责管理。通过这种方式,可以实现Struts与Spring的整合。下图给出了从Struts转入Spring容器中的Bean顺序图。



一旦进入了Spring IoC容器的内部,IoC容器负责创建系统所需的控制器,每次用户请求到达时,IoC容器都会重新创建一个新的控制器组件。

控制器组件依赖系统的业务逻辑组件,这种依赖也无须控制器组件主动去寻找,由Spring容器将业务逻辑组件注入到控制器组件。业务逻辑组件包含了系统的全部业务逻辑方法,本系统的业务逻辑方法放在业务逻辑中实现,而不是在Domain Object中实现。

事务采用Spring的声明式事务框架。通过声明式事务,无须将事务策略以硬编码的方式与代码耦合在一起,而是放在配置文件中声明。业务逻辑组件可以更专注业务的实现,从而简化了开发。同时,声明事务降低了不同事务策略的切换代价。

注:声明式事务是基于Spring的AOP实现,实际上,AOP并不是仅仅提供声明式事务管理,还可以管理基于AOP的权限管理等功能。

DAO层主要包含了系列的DAO组件,将系统中的给中数据库访问都封装在DAO方法里,为上一层业务逻辑方法的实现提供支持。DAO对象基于Spring的HibernateDaoSupport类实现,继承HibernateDaoSupport的DAO对象很简单,程序员无须管理Hibernate的SessionFactory、Session等对象。程序开发者通过Spring提供的HibernateTemplate完成数据库操作。







  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值