系统学习SSH(一)--SSH
来源:互联网 发布:美工做一个首页多少钱 编辑:程序博客网 时间:2024/05/17 08:33
SSH框架发展有了不短的时间,但仍然是当前各公司的主流应用框架之一,下面来具体分析一下它的基本结构,有何好处。
SSH是Struts+Spring+Hibernate的集成框架。它在职责方面分为四层:表示层、业务逻辑层、数据持久层和域模块层。
实现思路:Struts作为系统的整体基础架构,负责MVC分离,在Struts框架的模型部分,控制业务跳转;Hibernate对数据持久层提供支持;Spring管理Struts和Hibernate。
框架流程:
Web用户先通过JSP实现界面交互,表示层负责接收请求(Request)和发送响应(Response)到Tomcat服务器,然后Struts根据Servlet(以配置文件struts-config.xml形式实现)将接收到的Request委派给相应的Action处理,Action调用Model进行业务实现;业务层管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)和该组件的数据处理(DAO)来完成业务逻辑,并提供事务处理、缓冲池等容器组件来提升性能和保证数据的完整性。持久层则依赖于Hibernate的对象化映射和数据库交互,处理数据请求并返回结果。
如图:
简单描述:表示层(Presentation Layer)包括了html页面及CSS和JS,我们主要应用的还是JSP和Servlet;控制层(Controller Layer)主要是Struts,包括Struts-config.xml,Action及ActionForm、Struts标签等;业务逻辑是Spring来配置的,包括IOC容器管理、事务管理、配置Struts和Hibernate的文件applicationContext.xml和基本的持久化支持;持久层主要封装了持久化的DAO接口和实现。最后通过连接池和数据库交互,提升系统性能。
SSH包含内容的详细介绍:
Struts1负责MVC分离,它对Model、View、Controller都提供了对应的组件。
机制:ActionServlet(核心控制器)首先拦截来自用户的请求,然后分发到对应的Action;Action根据请求调用Model的业务逻辑方法处理请求,返回给JSP页面。Model封装了ActionForm和JavaBean,ActionForm中封装了用户的请求参数,可以通过ActionServlet提供给Action调用;JavaBean则封装了底层的业务逻辑,包括访问DB等。View主要是JSP,我们可以通过Struts1自身提供的标签库和Model进行数据交互。Controller由系统逻辑控制器和业务逻辑控制器组成,分别对应ActionServlet和Action。
Spring是开源的,主要是为解决企业应用开发复杂性产生的,它使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。
Spring是轻量级的,同时也是非侵入性的,即Spring中的应用不依赖于特定类。它提供了AOP和IOC机制,并且作为容器管理应用对象的配置和声明周期。
Spring可以将简单的组件配置、组合成为复杂的应用,灵活配置和管理,使系统更干净、易测试、易于应对变化。
Hibernates是一个开放的ORM框架,且是相对轻量级的、非侵入性的。它通过5个核心接口对持久化对象进行数据存取和事务控制。这些接口是:SessionFactory、Session、Configuration、Transaction、Query和Criteria。Session接口负责执行被持久化对象的CRUD操作,SessionFactory负责创建Session,Configuration负责配置并启动Hibernate并创建SessionFactory,操作多数据库时,可以为每一个数据库指定一个SessionFactory,Transaction负责事务,Query和Criteria负责数据库查询等。
总体来讲,SSH框架有很多优点供我们学习借鉴和使用:
1、实现了MVC模式,层次清晰,开发者可以专注于实现;
2、Struts提供了标签库、Hibernate封装了DAO,都大大简化了操作,提高了开发效率;
3、他们通过配置文件来掌握系统与各个部分的关系,使系统灵活可配、易于变化和管理;
4、Spring和Hibernate都是轻量级的、非侵入性的,便于移植;
5、Spring实现了AOP、IOC机制,提供了方便的事务、日志服务和依赖管理。
- 系统学习SSH(一)--SSH
- SSH学习笔记(一)
- ubuntu 学习一(SSH)
- SSH学习笔记(一)
- 【SSH】Hibernate学习(一)
- 【SSH】Spring学习(一)
- 【SSH】ssh再认识(一)
- SSH学习笔记【一】
- SSH学习笔记(一)
- SSH学习笔记一
- SSH学习一
- 雇员管理系统-SSH版(一)
- JBPM学习(一)--与SSH整合
- SSH框架学习笔记(一)
- ssh注解学习笔记(一)
- SSH 案例学习总结(一)
- SSH学习之Struts2(一)
- SSH学习记录之Spring(一)
- 我们的一个已投产项目的高可用数据库实战 - mongo 副本集的搭建详细过程
- LoadRunner学习笔记(二)
- SecureCRT配色方案
- 经典大数据架构案例:酷狗音乐的大数据平台重构
- JavaScript高级程序设计(第3版)第一章读书笔记
- 系统学习SSH(一)--SSH
- PL/SQL之%ROWTYPE使用
- 加盐hash保存密码的正确方式
- mysql对事务的处理
- 第10期《长啸激清风》2月刊
- jquery查找ul>li里 img的 alt属性="xxxx"时,img的src的值
- shell脚本入门教程
- VS2012进行测试
- pandas透视表