ssh框架 mvc设计模式

来源:互联网 发布:java敏感词过滤算法 编辑:程序博客网 时间:2024/03/29 21:14

MVC三层架构:模型层,控制层和视图层。
模型层,用Hibernate框架让来JavaBean在数据库生成表及关联,通过对JavaBean的操作来 对数据库进行操作;
控制层,用Struts框架来连接数据层和视图层的,接收、处理、发送数据并控制流程;
视图层,用JSP模板把页面展现给用户以及提供 与用户的交互。
而Spring框架粘合了Hibernate和Struts,透明的管理了整个架构,提供IOC容器使代码松耦合以及AOP框架的切面功能 等等。

MVC的处理过程:
首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果,并通过视图呈现给用户。

详细说明:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

有人举了一个小白菜的例子:我们去饭馆吃饭,摆在我们面前的油淋小白菜就是Jsp呈现的视图,而这道菜怎么来的呢,
当然要有小白菜,也就是Hibernate产生的 数据,小白菜要洗干净,切好,这是对数据的操作;
这些准备好了就要炒小白菜了,这就是Struts的事了。这个过程分工明确,各做各的,有的只负责洗菜, 有的只负责炒菜的,
Spring就是中间负责跑腿的,让洗菜的和炒菜的都安心做自己的事。最终一道菜就出来了,我们看到的是成品菜,却看不见它被制作的过 程。

SSH:是指struts2,spring,hibernate,是三种被封装的框架,是框架模式的实现,SSH是一种经典的MVC模式。
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
1.1 Hibernate 简介

Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
1.2 MyBatis简介

iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。
第二章 开发对比
开发速度

Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。
SSH:集成SSH框架的系统从职责上分为四层:表示层,业务逻辑层,数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的实现,采用Hibernate架构实现的DAO类来实现java类与数据库之间的转换和访问,最后由spring做管理,管理struts和hibernate。

系统的基本业务流程是:

在表示层中,首先通过jsp页面实现交互界面,负责接收请求(request)和传送响应(response),然后struts根据配置文件(strtus-config.xml)将ActionServlet接收到的请求委派给相应的Action处理。

在业务层中,管理服务组件的Spring IOC容器负责向Action提供业务模型【Model】组件和该组件的协作对象数据处理【DAO】组件完成业务逻辑,并提供事物处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。

在持久层中,依赖于hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。