SSH各框架工作原理

合集下载

SSH框架工作原理

SSH框架工作原理

SSH框架工作原理
SSH(Secure Shell),又称安全外壳协议,是一种加密的网络协议,用于在不安全的网络上进行安全的数据传输和命令执行。

SSH使用加密传输,以便防止窃听和篡改,并允许远程主机之间的安全连接。

SSH的作用
是在客户端和服务器之间实现安全的通信管道,使得远程客户端可以发出
命令并与服务器进行交互。

SSH基于客户端-服务器模式,也就是说,客
户端必须具有SSH客户端程序,而服务端必须具有SSH服务端程序,客户
端和服务端之间的会话通过SSH客户端和SSH服务端程序进行数据加密传输。

SSH工作机制:
1. 用户发送一个SSH客户端的连接请求(Connection Request),
要求连接到远程服务器(Remote Server)。

2.SSH客户端建立一个TCP连接,并发送有关客户端和服务器版本信
息的请求,以及支持的加密算法。

3.服务器发送给客户端,有关服务器版本信息和支持的加密算法。

4. 客户端发送一个用户名和一个临时随机数的密文(Cipher Text)
给服务器,密文由客户端的公钥(Public Key)和服务器的随机数(Random Number)组成。

5.服务器接收到客户端的密文后,对这个密文进行解密,以确认客户
端的真实身份。

6.服务器发送给客户端一个认证请求,这个认证请求包含一个临时随
机数。

Java的strutsspringhibernate精通SSH三大框架的底层机制及原理

Java的strutsspringhibernate精通SSH三大框架的底层机制及原理

Java的struts、spring、hibernate精通SSH三大框架的底层机制及原理1. 什么是SSH框架SSH是由Struts、Spring、Hibernate三个框架整合而成的,它是一种企业级、全栈式框架,非常适合开发大型Web应用程序。

Struts是MVC架构模式中的控制器层,负责接收请求并转化成对应的业务逻辑进行处理,同时也控制着视图层进行渲染。

Spring是一个轻量级的开源框架,它可以被用来构建Java企业级应用,能够提供全周期的、全栈式的框架服务。

Hibernate是一个ORM(对象关系映射)框架,之前在持久化层需要进行数据库的操作,但是Hibernate可以让开发者不用直接操作数据库,而是通过Java对象与数据库进行交互。

2. SSH框架的优势SSH框架的三个组件各自拥有一系列的优势。

Struts提供了用于Web开发的MVC架构,使得应用程序的开发和维护更加清晰、明了。

Spring专注于解决企业开发中的复杂问题,比如事务管理、安全管理、远程调用、Web框架等。

Hibernate则是优秀的ORM框架,可以将Java对象与关系型数据库进行映射,让开发者不用关心具体的SQL语句。

3. SSH框架的实现机制SSH框架的三个组件相互整合,形成了一个高效、稳定、易于使用的开发框架。

在SSH框架中,Web请求首先被Struts2框架接收,Struts2框架通过ActionContext来向Action中注入Spring容器管理的Bean完成业务逻辑处理,而Bean之间的关系都是由Spring的IOC容器维护的。

声明式事务管理交给Spring框架完成,Hibernate框架在ORM层将Java对象映射到数据库记录。

下面分别来详细介绍一下SSH框架各自的底层机制及原理。

3.1 Struts2框架Struts2框架是一个基于MVC模式的Web应用程序框架。

在Struts2中,负责接收请求转发的控制器为Action。

ssh整合框架原理及流程

ssh整合框架原理及流程

ssh整合框架原理及流程SSH(Spring、Struts和Hibernate)框架整合的原理和流程如下:原理:1. 控制反转(IoC):IoC是一种设计原则,通过这种原则,对象之间的依赖关系由容器来控制,而非传统的直接操控。

这使得程序代码更加灵活,易于复用。

2. 依赖注入(DI):DI是IoC的一种实现方式。

通过DI,组件之间的依赖关系由容器在运行时决定,并动态地将这种关系注入到组件中。

流程:1. 建立web工程,并将其编码设置为UTF-8。

2. 将整个JSP页面也设置为UTF-8编码格式。

3. 建立三个source folder文件:src(存放源代码)、config(存放所有的配置文件,如Struts、Hibernate和Spring配置文件)、test(存放测试类)。

4. 在WebRoot\WEB-INF\lib中导入相应的jar包。

5. 配置文件。

在这个文件中,Spring容器以监听器的形式与Tomcat整合。

6. Struts负责控制Service(业务逻辑处理类),从而控制Service的生命周期。

这样层与层之间的依赖很强,属于耦合。

7. 使用Spring框架来控制Action对象(Struts中的)和Service类。

这使得两者之间的关系变得松散。

Spring的IoC机制(控制反转和依赖注入)正是用在此处。

8. Spring的AOP应用:事务的处理。

在以往的JDBCTemplate中,事务提交成功、异常处理都是通过Try/Catch来完成。

整合SSH框架的目的是提高软件开发的效率和灵活性,减少代码的冗余和复杂性,使代码更易于维护和扩展。

SSH框架工作原理

SSH框架工作原理

SSH框架工作原理SSH框架是一种用于实现网络安全连接的通信协议,它包括SSH客户端和SSH服务器两个主要组件。

通过SSH框架,我们可以建立起加密的通信信道,对传输的数据进行安全保护,防止被中间人窃听或篡改。

下面我将详细介绍SSH框架的工作原理。

首先,SSH客户端与SSH服务器进行建立连接的过程。

客户端向服务器发送连接请求,并验证服务器的身份。

在这个过程中,客户端会生成一个随机数,并将该随机数发送给服务器。

服务器收到随机数后,用自己的私钥对该随机数进行签名,并向客户端发送该签名。

客户端则使用服务器的公钥对接收到的签名进行验证,以验证服务器的身份。

一旦验证通过,建立连接的过程完成。

接下来是密钥交换的过程。

在建立连接的基础上,SSH框架会使用非对称加密算法(如RSA)进行密钥交换,用于后续的数据加密和解密。

具体流程如下:客户端生成一对非对称密钥,其中一个作为私钥保存在本地,另一个作为公钥发送给服务器。

服务器收到公钥后,生成一个随机数,并用随机数对该公钥进行加密。

之后,服务器将加密后的公钥发送给客户端。

客户端收到加密后的公钥后,使用自己的私钥对其进行解密,得到服务器生成的随机数。

至此,客户端和服务器分别持有了对方的公钥和自己的私钥,用于后续的数据加密和解密。

最后是数据传输的过程。

在密钥交换的基础上,SSH框架使用对称加密算法(如AES)对传输的数据进行加密和解密。

具体流程如下:客户端将要发送的数据使用服务器的公钥进行加密,并发送给服务器。

服务器收到加密后的数据后,使用自己的私钥进行解密。

同样的,服务器将要发送的数据使用客户端的公钥进行加密,并发送给客户端。

客户端收到加密后的数据后,使用自己的私钥进行解密。

这样,客户端和服务器之间的数据传输就得到了加密和解密的保护,保证了数据的安全性。

除了上述的基本工作原理外,SSH框架还提供了一些额外的功能,如端口转发、SFTP文件传输等。

端口转发可以将本地端口与服务器端口进行映射,实现远程访问本地服务的功能。

SSH中各个框架的作用以及Spring AOP,IOC,DI详解

SSH中各个框架的作用以及Spring AOP,IOC,DI详解

SSH中各个框架的作用以及Spring AOP,IOC,DI详解在SSH框假中spring充当了管理容器的角色。

我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句。

Struts是用来做应用层的,他它负责调用业务逻辑serivce层。

所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖和强,属于耦合。

这时,使用spring框架就起到了控制Action 对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc 机制(控制反转和依赖注入)正是用在此处首先想说说IoC(Inversion of Control,控制倒转)。

这是spring的核心,贯穿始终。

所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。

这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。

传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。

那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所。

婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告诉它我想找个什么样的女朋友,比如长得像李嘉欣,身材像林熙雷,唱歌像周杰伦,速度像卡洛斯,技术像齐达内之类的,然后婚介就会按照我们的要求,提供一个mm,我们只需要去和她谈恋爱、结婚就行了。

三大框架ssh模式的详解

三大框架ssh模式的详解

6 16JAVA三大框架ssh-Struts、Spring、Hibernate(面试时用)文章分类:Java编程JAVA三大框架ssh-Struts、Spring、HibernateStruts1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是 ActionServlet的子类。

我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet 再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。

一个扩展知识点:struts的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀;2. ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。

3.要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性,我们后面结合实际的运行效果进行分析。

4.action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp 页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action 程序代码与返回的jsp页面名称的解耦。

SSH(Struts+Spring+Hibernate)三层架构

SSH(Struts+Spring+Hibernate)三层架构

目录目录 (1)一、SSH整体介绍 (3)1. 简介 (3)(1)Struts用于表现层,负责页面数据提取,页面动作响应。

(3)(2)Spring是一种轻量级的框架模型,主要负责业务逻辑层的对象创建,表现层的Action的创建,以及持久层的DAO的创建。

(3)(3)Hibernate负责把内存中的数据对象保存到数据库中。

(3)2. 框架集成说明 (3)1) Struts与Spring的集成 (3)2) Spring与Hibernate的集成 (3)3. 程序的包结构 (4)1) 表现层的类包 (4)2) 持久层的类包 (4)3) 业务层的类包 (4)二、核心的配置文件的说明: (5)1. Web.xml文件——工程初始化配置文件 (5)1) Servlet配置 (5)2) init-param设置 (6)3) servlet-mapping配置 (7)4) Spring配置文件配置 (7)5) Spring的Bean工厂配置 (7)6) Filter配置 (8)7) 欢迎页面配置 (9)2. struts-config.xml——Struts的配置文件 (9)(1)Form的配置 (9)(2)Action的配置 (9)(3)全局异常处理类配置 (10)(4)全局转发配置 (10)(5)action配置 (10)(6)资源文件配置 (11)3. applicationContext-common.xml——Spring公共配置文件 (11)(1)Session工厂配置 (11)(2)事务配置 (12)4. applicationContext-beans.xml——Spring中Bean的配置文件 (12)5. hibernate.cfg.xml——Hibernate的配置文件 (13)(1)Hibernate中Session工厂的配置 (13)(2)hbm.xml配置文件 (14)(3)DAO实现类说明 (15)三、Demo实例说明 (15)1、demo.jsp: (15)2、addRate.jsp (16)3、rateList.jsp (16)4、rateinfoAction (17)5、rateinfoAction 的配置(struts-config.xml) (17)6、配置spring文件 (18)7、比例列表(rateList.jsp): (20)一、SSH整体介绍1. 简介本Demo程序采用的是SSH(Struts+Spring+Hibernate)三层架构。

SSH各框架工作原理

SSH各框架工作原理

SSH各框架工作原理SSH 是指以 Spring + SpringMVC + MyBatis 为基础的 Java Web 开发框架。

它是将三个框架集成在一起,以实现各自的功能,并提供了更加便捷的开发方式和高效的开发效率。

在了解 SSH 的工作原理之前,我们先来了解一下每个框架的作用和特点。

1. Spring:Spring 是一个开源的 JavaEE 框架,它提供了一个容器,负责管理对象的创建、销毁和依赖注入等工作。

Spring 的特点是灵活,它通过配置文件或注解的方式将对象进行装配,降低了耦合度,并支持面向切面编程(AOP)和事务管理等功能。

2. SpringMVC:SpringMVC 是 Spring 框架的一个模块,用于开发Web 应用程序。

它采用 MVC(Model-View-Controller)的设计模式,将业务逻辑、视图展示和用户交互分开。

SpringMVC 提供了一套基于注解的方式来映射 URL 到具体的处理方法,并支持数据校验、文件上传等常用功能。

3. MyBatis:MyBatis 是一个持久层框架,用于操作数据库。

它通过XML 配置文件或注解的方式,将 SQL 语句与 Java 对象进行映射。

MyBatis 提供了丰富的查询功能,并支持事务管理和缓存机制,可以有效地减少开发人员编写 SQL 语句的工作量。

了解了每个框架的作用和特点,下面我们来了解SSH框架是如何工作的。

1. 客户端发送请求:用户通过浏览器发送 HTTP 请求到服务器,请求的 URL 被映射到 SpringMVC 控制器的处理方法上。

2. SpringMVC 控制器处理请求:SpringMVC 根据请求的 URL,查找到对应的控制器,并调用相应的处理方法对请求进行处理。

控制器方法可以通过注解方式获取请求参数、校验数据等。

3. 控制器调用业务逻辑:在控制器中,可以调用业务逻辑层(Service)处理业务逻辑。

业务逻辑层通过依赖注入的方式获取数据库访问层(DAO)的实例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SSH各框架的工作原理
struts1的工作原理:
1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。

(面向对象思想)
2.发送HTTP请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。

3.form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form 对象中的成员变量中。

4.将请求派发到具体的Action处理:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。

5.处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。

服务器通过ActionForward对象进行转发工作。

6.返回目标响应对象:Action将业务处理的不同结果返回一个目标响应对象给总控制器。

7.转换HTTP请求到目标响应对象:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。

8.响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。

Struts2工作原理:
1 初始化:客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)
(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5. ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action 类
6. ActionProxy创建一个Action Invocation的实例。

7 Action Invocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Interceptor)的调用。

8. 一旦Action执行完毕,Action Invocation负责根据struts.xml中的配置找到对应的返回结果。

返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

在表示的过程中可以使用Struts2 框架中继承的标签。

在这个过程中需要涉及到ActionMapper
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory 来创建的
Spring工作原理:
1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。

2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。

为什么要使用Spring:
AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。

使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成切面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。

IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。

正如单词倒置所表明的,IOC 就像反过来的JNDI。

没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。

因此是由容器管理协作对象(collaborator)。

Spring即是一个AOP框架,也是一IOC容器。

Spring 最好的地方是它有助于您替换对象。

有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象)。

然后可以很容易地在需要时替换具有类似接口的协作对象。

Spring 框架是一个分层架构,由7 个定义良好的模块组成。

Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean 的方式,如图1 所示。

组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

每个模块的功能如下:
核心容器:核心容器提供Spring框架的基本功能。

核心容器的主要组件是BeanFactory,它是工厂模式的实现。

BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring 上下文:Spring 上下文是一个配置文件,向Spring框架提供上下文信息。

Spring 上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring框架中。

所以,可以很容易地使Spring 框架管理的任何对象支持AOP。

Spring AOP 模块为基于Spring的应用程序中的对象提供了事务管理服务。

通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。

异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。

SpringDAO的面向JDBC 的异常遵从通用的DAO 异常层次结构.
Spring ORM:Spring 框架插入了若干个ORM 框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate 和iBatis SQL Map。

所有这些都遵从Spring 的通用事务和DAO异常层次结构。

Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。

所以,Spring 框架支持与Jakarta Struts的集成。

Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC 框架:MVC 框架是一个全功能的构建Web 应用程序的MVC实现。

通过策略接口,MVC框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText 和POI。

Spring 框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。

Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。

毫无疑问,这样的对象可以在不同J2EE 环境(Web或EJB)、独立应用程序、测试环境之间重用。

Hibernate工作原理
1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息
3.创建SessionFactory(通过config.buildSessionFactory())
4.打开Sesssion(.sessionFactory.openSession())
5.创建事务Transation(session.beginTransaction())
6.persistent operate持久化操作
7.提交事务(session.getTransaction().commit())
8.关闭Session
9.关闭SesstionFactory。

相关文档
最新文档