OOM

Stay Hungry,Stay Foolish.

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

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







阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yu422560654/article/details/7924637
文章标签: ssh
想对作者说点什么? 我来说一句

SSH在线考试系统源代码

2013年06月03日 13.08MB 下载

在线考试系统ssh

2014年05月02日 35.79MB 下载

基于ssh框架开发的在线考试系统

2015年10月28日 17.43MB 下载

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

2016年02月21日 2.71MB 下载

SSH在线考试系统--李刚

2014年06月13日 7.37MB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭