SSH框架与MVC架构之间的关系
来源:互联网 发布:模拟退火算法改进 编辑:程序博客网 时间:2024/06/06 00:25
MVC三层架构:模型层,控制层和视图层。模型层,用Hibernate框架让来JavaBean在数据库生成表及关联,通过对JavaBean的操作来对数据库进行操作;控制层,用Struts框架来连接数据层和视图层的,接收、处理、发送数据并控制流程;视图层,用JSP模板把页面展现给用户以及提供与用户的交互。而Spring框架粘合了Hibernate和Struts,透明的管理了整个架构,提供IOC容器使代码松耦合以及AOP框架的切面功能等等。
也可以换种说法:我们去饭馆吃饭,摆在我们面前的油淋小白菜就是Jsp呈现的视图,而这道菜怎么来的呢,当然要有小白菜,也就是Hibernate产生的数据,小白菜要洗干净,切好,这是对数据的操作;这些准备好了就要炒小白菜了,这就是Struts的事了。这个过程分工明确,各做各的,有的只负责洗菜,有的只负责炒菜的,Spring就是中间负责跑腿的,让洗菜的和炒菜的都安心做自己的事。最终一道菜就出来了,我们看到的是成品菜,却看不见它被制作的过程。
我举个例子来说明怎么利用SSH框架做菜,当然这里仅仅是一些最简单的示例代码用来做说明:
1.JavaBean类(Model,这里就是买来的小白菜):
public class Building {
private String code;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
2.用Hibernite把对象持久化到数据库中(Model,还是小白菜,只不过换个说法,你可以给它随便起个名字,比如说实体小白菜,但其实还是一样的东西)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Building" table="building">
<id name="id" column="id">
<generator class="uuid"/>
</id>
<property name="code"/>
</class>
</hibernate-mapping>
3.把对数据的访问封装成一个面向对象的接口(Model,洗菜,切菜):
public interface BuildingManager {
List findEntity();
}
4.控制层的处理(Controller,开始炒菜了):
public class BuildingAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest req,
HttpServletResponse servletResponse) throws Exception {
List results = entityManager.findItems();
req.setAttribute("buildings",page);
return actionMapping.findForward("list");
}
}
5.jsp视图(View,端上桌的油淋小白菜,这里我就不写示例代码了)。
至此,我们在MVC清晰明了的架构中,虽然代码简单,却足以勾勒出如何在SSH三大框架的通力合作下实现楼宇列表的显示,小白菜可以吃了。
也可以换种说法:我们去饭馆吃饭,摆在我们面前的油淋小白菜就是Jsp呈现的视图,而这道菜怎么来的呢,当然要有小白菜,也就是Hibernate产生的数据,小白菜要洗干净,切好,这是对数据的操作;这些准备好了就要炒小白菜了,这就是Struts的事了。这个过程分工明确,各做各的,有的只负责洗菜,有的只负责炒菜的,Spring就是中间负责跑腿的,让洗菜的和炒菜的都安心做自己的事。最终一道菜就出来了,我们看到的是成品菜,却看不见它被制作的过程。
我举个例子来说明怎么利用SSH框架做菜,当然这里仅仅是一些最简单的示例代码用来做说明:
1.JavaBean类(Model,这里就是买来的小白菜):
public class Building {
private String code;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
2.用Hibernite把对象持久化到数据库中(Model,还是小白菜,只不过换个说法,你可以给它随便起个名字,比如说实体小白菜,但其实还是一样的东西)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Building" table="building">
<id name="id" column="id">
<generator class="uuid"/>
</id>
<property name="code"/>
</class>
</hibernate-mapping>
3.把对数据的访问封装成一个面向对象的接口(Model,洗菜,切菜):
public interface BuildingManager {
List findEntity();
}
4.控制层的处理(Controller,开始炒菜了):
public class BuildingAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest req,
HttpServletResponse servletResponse) throws Exception {
List results = entityManager.findItems();
req.setAttribute("buildings",page);
return actionMapping.findForward("list");
}
}
5.jsp视图(View,端上桌的油淋小白菜,这里我就不写示例代码了)。
至此,我们在MVC清晰明了的架构中,虽然代码简单,却足以勾勒出如何在SSH三大框架的通力合作下实现楼宇列表的显示,小白菜可以吃了。
- SSH框架与MVC架构之间的关系
- SSH框架与MVC架构之间的关系
- SSH框架与MVC架构之间的关系
- ssh框架与mvc及业务逻辑之间的关系
- MVC架构和SSH框架对应关系
- 关于struts2框架与MVC之间关系的分析
- 架构、框架、设计模式之间的关系
- 架构、框架、设计模式之间的关系
- 架构、框架、设计模式之间的关系
- SSH框架mvc三层架构
- SSH MVC的关系
- MVC与J2EE架构的对应关系
- 三层架构与MVC的关系
- 三层架构与MVC之间的区别
- MVC模式和三层架构之间的关系
- MVC模式和三层架构之间的关系
- 浅谈MVC设计模式和SSH框架的关系
- SSH与FTP之间的关系与区别
- Linux 系统中 ls 命令用法与显示内容详解
- 安装ORACLE时在Linux上设置内核参数的含义
- PHP Token(令牌)设计
- 二分查找法的实现和应用(进阶篇)
- 落花泪,与君诀
- SSH框架与MVC架构之间的关系
- map按倒序取数据的使用
- 应用程序性能的监控与改善——性能设计
- NSPredicate 详解
- Objective-C语言特性
- Web ADF 的安装说明
- 查看Mysql数据库文件位置
- iOS中注册功能的体验探究
- 关于爱情