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

原创 2012年08月30日 12:01:39

系统源代码  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完成数据库操作。







版权声明:本文为博主原创文章,未经博主允许不得转载。

科帮网Java在线考试系统ssh

  • 2016年03月03日 10:50
  • 7.43MB
  • 下载

SSH在线考试系统源代码

  • 2013年06月03日 10:42
  • 13.08MB
  • 下载

java在线考试系统SSH框架源代码

  • 2016年02月21日 10:11
  • 2.71MB
  • 下载

在线考试系统源码

  • 2016年06月15日 01:53
  • 34.18MB
  • 下载

SSH在线考试系统--李刚

  • 2014年06月13日 16:56
  • 7.37MB
  • 下载

ssh分层架构

所谓切入点,就是为一个切入点表达式取一个名字,从而允许在多个增强处理中重用该名称 AOP编程中需要程序员参与的只有3个部分: 1、定义普通业务组件 2、定义切入点,一个切入点可能横切多个业务组件...
  • xiang1431
  • xiang1431
  • 2015年04月04日 18:01
  • 282

【分享】分享一个基于SSH实现的简单学生选课系统(附源码)

首先声明:本小项目是因老师而做,主要为了完成老师项目要求,当然也添加了许多老师没有要求的功能,本项目代码非常简单,分享出来时为了和我一样的小菜鸟共同学习一下,只适合初学者拿来学习,大牛可直接绕过。如有...
  • csh624366188
  • csh624366188
  • 2012年06月22日 10:49
  • 31709

java在线考试系统SSH框架源代码

  • 2017年10月13日 16:04
  • 2.71MB
  • 下载

在线考试系统(ssh)

  • 2014年05月02日 10:30
  • 35.79MB
  • 下载

SSH框架开发中分层意义

在使用SSH框架进行web开发时,进行后端设计时必然会涉及到类的划分,也就会涉及到层次的划分。 所谓层次,也就是一种降低耦合性的措施,人为的通过代码的功能性的不同和调用关系将整个项目的类进行分层...
  • baobao44199
  • baobao44199
  • 2014年04月23日 14:37
  • 2803
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从 SSH实例《在线考试系统》 看SSH系统分层模型
举报原因:
原因补充:

(最多只允许输入30个字)