SSH框架宏观了解
来源:互联网 发布:网络悬疑剧两小无猜 编辑:程序博客网 时间:2024/05/02 04:58
介绍:
SSH为struts+spring+hibernate的一个集成框架,是目前流行的一种Web应用程序开源框架。这个集成框架结构清晰、可复用性好、维护方便。
SSH框架从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。
Struts
MVC框架我们都不陌生吧,那么Struts是基于J2EE平台的MVC框架,所以Struts我们也算是很熟悉了。主要采用Servlet和JSP技术实现。
(1)视图(view)
在Struts中,视图层包含两个部分,JSP页面和ActionForm。
ActionForm封装了用户提交的表单信息,其实ActonForm本质上就是JavaBean,这些JavaBean中没有业务逻辑,只提供了所有属性的getter和setter方法,这些属性和用户表单中的输入项是一一对应的。在Struts中就是通过
ActionForm把用户表单信息提交给控制器。
JSP页面是经典MVC中主要的视图组件,主要是信息显示和控制器处理结果显示的功能。
除了以上,struts还提供了一个强大的struts标签库,来帮助用户解决显示逻辑,并且利用ActonForm组件将
信息传递到控制层。
(2)控制器(Controller)
在控制层,struts提供了一个控制器组件ActionServlet,它继承自HttpServlet,并重载了HttpServlet的
doGet(),doPost()方法,可以接受HTTP的响应,并进行转发,同时还提供了使用XML进行转发Mapping(映射)的
功能。
(3)模型(Model)
模型表示状态和业务逻辑的处理,在一般的web应用程序中,用JavaBean或者EJB来实现系统的业务逻辑。在
Struts中,struts提供Action对象,来管理业务逻辑的调用,帮助用户分离业务逻辑,也就是说struts本身不实现业
务逻辑,但可以调用已完成的业务逻辑。
Struts在项目中的作用:
主要起控制作用,用于Web层即表示层
struts调用流程:
详细过程:
1.客户端初始化一个指向servlet容器的请求。
2.请求经过一系列的过滤器(ActionContextCleanUp、SiteMesh)
3.FilterDispatcher被调用,并询问ActionMapper来决定这个请求是否需要调用某个Action
4.ActionMapper决定要调用那一个Action,FilterDispatcher把请求交给ActionProxy。
5. ActionProxy通过Configurate Manager询问Struts配置文件,找到要调用的Action类
6. ActionProxy创建一个ActionInvocation实例
7. ActionInvocation实例使用命令模式来调用,回调Action的exeute方法
8. 一旦Action执行完毕,ActionInvocation负责根据Struts.xml的配置返回结果。
spring
spring是一个开源框架,在项目中对hibernate和struts进行整合,解决层与层之间的耦合问题。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及VO无缝整合。
spring的特点:IOC容器、轻量、面向切面、容器
在项目中的作用:
Spring的IoC来实现组件之间的依赖关系注入,上层框架不会渗透到下层组件,提高组件移植性和重用性,使得程
序更灵活,上层框架不依赖实现而是依赖于抽象(委托接口)、使得实现类的变化不会影响上层组件,解决了层与层之
间的藕合带来的维护或升级困难SpringAOP 是面向方面编程,实现事务处理、日志服务等与业务无关的系统服务,实
现插件式编程。
Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以
随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何场合使用JDBC,既可以在Java的客户端程序
使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,
完成数据持久化的重任。
项目中的作用:
1、解决程序与数据库的依赖,即使用了Hibernate之后,以后更改数据库不需要更改代码,因为Hibernate会根据
数据库方言来生成对应的SQL语句;
2、是对JDBC的轻量级封装,简化持久层的代码,提高开发速度。
Hibernate的核心接口:
Session、SessionFactory、Transaction、Query和Configuration
Session接口:
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常
见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的
HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为
用户session。
SessionFactory接口:
SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工
厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory
就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
Configuration接口:
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,
Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
Transaction接口:
Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
Query和Criteria接口:
Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
SSH架构图:
总结:
对ssh的理解还比较偏理论化,理解地不是很深,还需要多多实践,加油!
- SSH框架宏观了解
- 【WCF 1】WCF框架宏观了解
- SSM框架(一)---宏观了解
- 【SSH】SSH框架(一)——宏观介绍
- 【SSH框架初了解】
- 了解SSH框架
- 【UML之宏观了解】
- C#之宏观了解
- java2 -宏观了解
- C++——宏观了解
- C++——宏观了解
- 【信息资源管理之宏观了解】
- 宏观了解SQL Server 2008
- UML——宏观了解
- Cookie(一)---宏观了解
- 宏观把握SpringMVC框架
- 宏观解析jQuery框架源码
- 宏观解析jQuery框架源码
- PAT B1059 C语言竞赛
- java中static作用详解
- 洛谷 P1219 八皇后
- CGLIB
- 洛谷 P1057 传球游戏
- SSH框架宏观了解
- SAP S/4HANA 1610的版本到底有多高
- 我的第一步
- 【PAT】1028. List Sorting
- 微信小程序中设置全局变量
- 递归—二分查找
- 【WPF】ListBox使用UserContrl作为子控件
- 数论之素数,包括eratosthenes算法,欧拉函数
- 洛谷 P1135 奇怪的电梯