MVC和SSH的关系
一、什么是MVC
为什么会有MVC模式?前辈们经过多年的开发经验,发现WEB开发主要涉及三个方面。
第一,得有界面,也就是视图层(View),它负责展示数据给用户和接收用户的请求;
第二,得有控制,也就是控制层(Control),它负责调度和分配,用户发出的请求由谁(方法)去完成,完成后用哪个视图(jsp,html)展示处理的结果。
第三,得有处理方法,也就是模型层(Model),它负责处理用户发出的请求,必要时返回处理的结果数据。
为什么要分层呢?答案是为了提高开发效率,如今写软件已经不是一个人写了,而是团队,做软件也变成了一项工程,分层后,相当于流水线作业,不同的人负责不同的部分,俗话说,术业有专攻。分层后,代码逻辑也容易理解,并且有利于软件的维护和复用, MVC是一种思想模型。
二、MVC的三层原理及实现
1、模型(Model)采用JavaBean
分为:两大层 业务逻辑层 和DAO层(抽象出来DAO层的原因是客户端不通过业务逻辑直接访问数据库,业务逻辑和数据库直接加一个DAO层 防止数据库表的暴露和跨数据库平台), 业务逻辑层又分为管理层和实体类(实体类里面装的一般是属性值和他的get set 方法)
2、视图(View)采用JSP +Html
用户可以通过视图来请求模型进行更新,负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西.
3、 控制器(Controller)采用struts2 或 采用Servlet 接收用户请求,委托给模型进行处理,做了个调度员的工作 。
以上是MVC思想,下面把SSH框架和MVC结合起来 讲解:
三、SSH和MVC的关系
SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。
1、Struts:
Struts在前端相当于代替Servlet充当了Controller的概念,客户端提交数据到Struts,Struts访问后面的业务逻辑返回相应的视图 ,数据提到到Struts的时候可以通过Struts的拦截器进行权限检查
2、Spring:
1)当你对一个方法写一个事物的时候可以用Spring的AOP的思想,自动给你添加一个事物 。
2)Model中分为业务逻辑层和DAO层 业务逻辑层通过DAO层访问数据库,那么业务逻辑层需要有DAO的引用,然后New一个DAO出来,这个过程交给Spring帮你来New(业务逻辑层交给Spring来管理 帮你动态注入DAO到业务逻辑层中 )也就是Spring的动态代理 ,在Struts里面用到 业务逻辑的时候以前也是直接New 现在可以用Spring帮你动态注入 ,这也就是Spring的IOC(控制翻转)思想 。
3)Hibrrnate:
Hibernate也就是代替了DAO ,hibernate主要就是改变了Model之中业务逻辑这层的编程方式, 业务逻辑这层用Hibernate实现去访问数据库而不用DAO 。