实战SSH端口转发

实战SSH端口转发
实战SSH端口转发

通过本文的介绍,读者可以从中了解到如何应用SSH 端口转发机制来解决日常工作/ 生活中的一些问题。学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业信息。同时也能够用此技术解决工作中一些常见问题,例如解决防火墙及网络应用本身带来的一些限制。

第一部分概述

当你在咖啡馆享受免费WiFi的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看

SSH 的端口转发功能能给我们带来什么好处吧!

端口转发概述

让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这

就是端口转发。它能够将其他TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH 的连接,那么也是能够通过将TCP 端口转发来使用SSH 进行通讯。总的来说SSH 端口转发能够提供两大功能:

1.加密SSH Client 端至SSH Server 端之间的通讯数据。

2.突破防火墙的限制完成一些之前无法建立的TCP 连接。

图 1. SSH 端口转发

如上图所示,使用了端口转发之后,TCP 端口 A 与 B 之间现在并不直接通讯,而是转发到了SSH 客户端及服务端来通讯,从而自动实现了数据加密并同时绕过了防火墙的限制。

第二部分本地转发与远程转发

本地转发实例分析

我们先来看第一个例子,在实验室里有一台LDAP 服务器(LdapServerHost),但是限制了只有本机上部署的应用才能直接连接此LDAP 服务器。如果我们由于调试或者测试的需要想临时从远程机器(LdapClientHost)直接连接到这个LDAP 服务器, 有什么方法能够实现呢?

答案无疑是本地端口转发了,它的命令格式是:

在LdapClientHost上执行如下命令即可建立一个SSH 的本地端口转发,例如:

图 2. 本地端口转发

这里需要注意的是本例中我们选择了7001 端口作为本地的监听端口,在选择端口号时要注意非管理员帐号是无权绑定1-1023 端口的,所以一般是选用一个1024-65535 之间的并且尚未使用的端口号即可。

然后我们可以将远程机器(LdapClientHost)上的应用直接配置到本机的7001 端口上(而不是LDAP 服务器的389 端口上)。之后的数据流将会是下面这个样子:

?我们在LdapClientHost上的应用将数据发送到本机的7001 端口上,

?而本机的SSH Client 会将7001 端口收到的数据加密并转发到LdapServertHost的SSH Server 上。

?SSH Server 会解密收到的数据并将之转发到监听的LDAP 389 端口上,

?最后再将从LDAP 返回的数据原路返回以完成整个流程。

我们可以看到,这整个流程应用并没有直接连接LDAP 服务器,而是连接到了本地的一个监听端口,但是SSH 端口转发完成了剩下的所有事情,加密,转发,解密,通讯。

这里有几个地方需要注意:

?SSH 端口转发是通过SSH 连接建立起来的,我们必须保持这个SSH 连接以使端口转发保持生效。一旦关闭了此连接,相应的端口转发也会随之关闭。

?我们只能在建立SSH 连接的同时创建端口转发,而不能给一个已经存在的SSH 连接增加端口转发。

?你可能会疑惑上面命令中的为什么用localhost,它指向的是哪台机器呢?

在本例中,它指向LdapServertHost。我们为什么用localhost而不是IP 地址或者主机名呢?其实这个取决于我们之前是如何限制LDAP 只有本机才能访问。如果只允许lookback接口访问的话,那么自然就只有localhost或者IP 为127.0.0.1 才能访问了,而不能用真实IP 或者主机名。

?命令中的必须是同一台机器么?其实是不一定的,它们可以是两台不同的机器。我们在后面的例子里会详细阐述这点。

?好了,我们已经在LdapClientHost建立了端口转发,那么这个端口转发可以被其他机器使用么?比如能否新增加一台LdapClientHost2 来直接连接LdapClientHost的7001 端口?答案是不行的,在主流SSH 实现中,本地端口转发绑定的是lookback 接口,这意味着只有localhost或者127.0.0.1 才能使用本机的端口转发, 其他机器发起的连接只会得到“ connection refused. ”。好在SSH 同时提供了GatewayPorts关键字,我们可以通过指定它与其他机器共享这个本地端口转发。

ssh -g -L ::

远程转发实例分析

我们来看第二个例子,这次假设由于网络或防火墙的原因我们不能用SSH 直接从LdapClientHost连接到LDAP 服务器(LdapServertHost),但是反向连接却是被允许的。那此时我们的选择自然就是远程端口转发了。

它的命令格式是:

例如在LDAP 服务器(LdapServertHost)端执行如下命令:

图 3. 远程端口转发

和本地端口转发相比,这次的图里,SSH Server 和SSH Client 的位置对调了一下,但是数据流依然是一样的。我们在LdapClientHost上的应用将数据发送到本机的7001 端口上,而本机的SSH Server 会将7001 端口收到的数据加密并转发到LdapServertHost的SSH Client 上。SSH Client 会解密收到的数据并将之转发到监听的LDAP 389 端口上,最后再将从LDAP 返回的数据原路返回以完成整个流程。

看到这里,你是不是会有点糊涂了么?为什么叫本地转发,而有时又叫远程转发?这两者有什么区别?

本地转发与远程转发的对比与分析

不错,SSH Server,SSH Client,LdapServertHost,LdapClientHost,本地转发,远程转发,这么多的名词的确容易让人糊涂。让我们来分析一下其中的结构吧。首先,SSH 端口转发自然需要SSH 连接,而SSH 连接是有方向的,从SSH Client 到SSH Server 。而我们的应用也是有方向的,比如需要连接LDAP Server 时,LDAP Server 自然就是Server 端,我们应用连接的方向也是从应用的Client 端连接到应用的Server 端。如果这两个连接的方向一致,那我们就说它是本地转发。而如果两个方向不一致,我们就说它是远程转发。

我们可以回忆上面的两个例子来做个对照。

本地转发时:

LdapClientHost同时是应用的客户端,也是SSH Client,这两个连接都从它指向LdapServertHost(既是LDAP 服务端,也是SSH Server)。

远程转发时:

LdapClientHost是应用的客户端,但却是SSH Server ;而LdapServertHost是LDAP 的服务端,但却是SSH Client 。这样两个连接的方向刚好相反。

另一个方便记忆的方法是,Server 端的端口都是预定义的固定端口(SSH Server 的端口22,LDAP 的端口389),而Client 端的端口都是动态可供我们选择的端口(如上述例子中选用的7001 端口)。如果Server 端的两个端口都在同一台机器,Client 端的两个端口都在另一台机器上,那么这就是本地连接;如果这四个端口交叉分布在两个机器上,每台机器各有一个Server 端端口,一个Client 端端口,那就是远程连接。

弄清楚了两者的区别之后,再来看看两者的相同之处。如果你所在的环境下,既允许LdapClientHost发起SSH 连接到LdapServerHost,也允许LdapServerHost发起

SSH 连接到LdapClientHost。那么这时我们选择本地转发或远程转发都是可以的,能完成一样的功能。

接着让我们来看个进阶版的端口转发。我们之前涉及到的各种连接/ 转发都只涉及到了两台机器,还记得我们在本地转发中提到的一个问题么?本地转发命令中的可以是不同的机器么?

答案是可以的!让我们来看一个涉及到四台机器(A,B,C,D) 的例子。

图 4. 多主机转发应用

在SSH Client(C) 执行下列命令来建立SSH 连接以及端口转发:

然后在我们的应用客户端(A)上配置连接机器(C )的7001 端口即可。注意我们在命令中指定了“ -g ”参数以保证机器(A)能够使用机器(C)建立的本地端口转发。而另一个值得注意的地方是,在上述连接中,(A)<-> (C) 以及(B)<->(D) 之间的连接并不是安全连接,它们之间没有经过SSH 的加密及解密。如果他们之间的网络并不是值得信赖的网络连接,我们就需要谨慎使用这种连接方式了。

第三部分其他类型的转发

动态转发实例分析

恩,动态转发,听上去很酷。当你看到这里时,有没有想过我们已经讨论过了本地转发,远程转发,但是前提都是要求有一个固定的应用服务端的端口号,例如前面例子中的LDAP 服务端的389 端口。那如果没有这个端口号怎么办?等等,什么样的应用会没有这个端口号呢?嗯,比如说用浏览器进行Web 浏览,比如说MSN 等等。

当我们在一个不安全的WiFi环境下上网,用SSH 动态转发来保护我们的网页浏览及MSN 信息无疑是十分必要的。让我们先来看一下动态转发的命令格式:

例如:

图 5. 动态端口转发

似乎很简单,我们依然选择了7001 作为本地的端口号,其实在这里SSH 是创建了一个SOCKS 代理服务。来看看帮助文档中对-D 参数的描述:

之后的使用就简单了,我们可以直接使用localhost:7001 来作为正常的SOCKS 代理来使用,直接在浏览器或MSN 上设置即可。在SSH Client 端无法访问的网站现在也都可以正常浏览。而这里需要值得注意的是,此时SSH 所包护的范围只包括从浏览器端(SSH Client 端)到SSH Server 端的连接,并不包含从SSH Server 端到目标网站的连接。如果后半截连接的安全不能得到充分的保证的话,这种方式仍不是合适的解决方案。

X 协议转发实例分析

好了,让我们来看最后一个例子- X 协议转发。

我们日常工作当中,可能会经常会远程登录到Linux/Unix/Solaris/HP 等机器上去做一些开发或者维护,也经常需要以GUI 方式运行一些程序,比如要求图形化界面来安装DB2/WebSphere 等等。这时候通常有两种选择来实现:VNC 或者X 窗口,让我们来看看后者。

使用X 窗口通常需要分别安装:X Client 和X Server 。在本例中我们的X Client 就是所访问的远程Linux/Unix/Solaris/HP,而我们的X Server 则是发起访问的本地机器(例如你面前正在使用的笔记本或台式机)。把X Client 端的X 窗口显示在X Server 端需要先行在X Client 端指定X Server 的位置,命令格式如下:

例如:

然后直接运行X 应用即可,X 窗口就会自动在我们的本地端打开。

一切运行正常,但是,这时候IT 部门突然在远程Linux/Unix/Solaris/HP 前面加了一道防火墙。非常不幸的是,X 协议并不在允许通过的列表之内。怎么办?只能使用VNC 了么?不,其实只要使用了SSH 端口转发即可通过,同时也对X 通讯数据做了加密,

真是一举两得。(当然,使用此方法前最好先咨询相关IT 部门是否符合相应的安全条例,以免造成违规操作。)

建立命令也很简单,直接从本地机器(X Server 端)发起一个如下的SSH 连接即可:

图 5. X 转发

建立连接之后就可以直接运行远程的X 应用。注意建立X 转发之后会自动设置DISPLAY 环境变量,通常会被设置成localhost:10.0,我们无需也不应该在连接之后再进行修改此环境变量。

一个比较常见的场景是,我们的本地机器是Windows 操作系统,这时可以选择开源的XMing来作为我们的XServer,而SSH Client 则可以任意选择了,例如PuTTY,Cygwin 均可以配置访问SSH 的同时建立X 转发。

第四部分总结

至此,我们已经完成了本地端口转发,远程端口转发,动态端口转发以及X 转发的介绍。回顾起来,总的思路是通过将TCP 连接转发到SSH 通道上以解决数据加密以及突破防火墙的种种限制。对一些已知端口号的应用,例如Telnet/LDAP/SMTP,我们可以使用本地端口转发或者远程端口转发来达到目的。动态端口转发则可以实现SOCKS 代理从而加密以及突破防火墙对Web 浏览的限制。对于X 应用,无疑是X 转发最为适用了。虽然每一部分我们都只是简单的介绍了一下,但如果能灵活应用这些技巧,相信对我们的日常生活/ 工作也是会有所帮助的。

ssh框架面重要试题

Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。 他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。 它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与存中,当程序真正对数据的操作时,对象才存在与存中,就实现了延迟加载,他节省了服务器的存开销, 从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、 one-to-many、many-to-many、 4.说下Hibernate的缓存机制

SSH框架搭建实例教程,课程设计

. SSH的理解及其应用实践

1.SSH是什么 (3) 2 Spring 介绍理解: (3) 2.1简单介绍 (3) 2.2各种特性 (3) 2.2.1轻量 (3) 2.2.2控制反转 (4) 2.2.3面向切面 (4) 2 .2.4容器 (4) 2.2.5框架 (4) 2.3总结 (4) 3.Hibernate介绍理解: (4) 3.1简单介绍 (4) 3.2核心接口 (5) .3.2.1 Session接口 (5) 3.2.2 .SessionFactory接口 (5) 3.2.3.Configuration接口 (5) 3.2.4.Transaction接口 (5) 3.2.5 Query和Criteria接口 (5) 4. Struts (6) 4.1什么是Struts框架 (6) 4.2 Struts 概览 (6) 4.2.1Client browser(客户浏览器) (6) 4.4 Struts中的Controller(控制器)命令设计模式的实现 (7) 4.5 在Struts框架中控制器组件的三个构成部分 (7) 4.7 Struts中的Model(模型) (8) 5.SSH整合步骤 (8) 5.1安装所需软件环境: (8) 5.1.1、首先安装JDK,配置Java环境变量 (8) 5.1.2安装MyEelipse (8) 5.1.3 数据库 (9) 5.1.4、 (9) 5.2环境配置好了就可以做SSH整合的项目 (9) 6.搭建框架并简单应用 (11) 6.1准备工作 (11) 6.2(建立项目,包结构,导入所需jar文件) (12) 6.3撰写资源文件 (15) 6.4在https://www.360docs.net/doc/5e12317852.html,m 包下添加下列文件 (19) 6.5添加hibernate DAO 模板 (20) 6.6以上的工作还不够,我们还需要进行WEB方面的配置 (20) 7.测试: (23)

JAVA Web课程设计--注册登录系统-- 用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统 注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。 本次课程设计的主要内容有: ●系统概述 ●设计数据库 ●SSH三大框架的整合 ●MD5加密的实现(选做) ●注册系统的实现 ●登录系统的实现

1、系统概述 本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web 系统。 1.1系统功能简介 本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。 当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。 当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。 1.2系统总体结构 本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的Action、DAO层代码和若干个JSP页面组成。其中注册系统的Action是RegisterAction类,另外还有一个用于显示用户注册页面的register.jsp文件和一个负责显示处理结果的result.jsp文件。登录系统的Action是LoginAction类,另外还有一个login.jsp文件和一个表示用户已经成功登录的success.jsp文件。用户注册登录系统的工作流程图如下图所示:

SSH整合

MyEclipse6.0的SSH整合 Version 1.1 2010-6-20 目录 0.概述 (2) 1.准备环境 (2) 2.创建工程 (10) 3.添加Struts支持 (11) 4.添加Spring支持 (13) 5.配臵数据源 (17) 6.添加Hibernate支持 (28) 7.添加Hibernate反转工程 (35) 8.修改目录结构 (39) 9.测试Spring和Hibernate的整合 (41) 10.整合Struts和Spring (51) 11.测试SSH的整合 (52) 0.概述 MyEclipse 是 Eclipse 的一个优秀插件,用于 Java EE 的开发,提供了诸如数据库管理、文件配臵管理等的一站式服务。然而对

于 SSH 的整合,仅仅使用 MyEclipse 是无法成功实现的。这或许是MyEclipse 的 Bug,因为它自带的部分库文件并不能按照预期进行整合,需要我们手工干预。因此,我们编写这个这个文档,希望对以后的 SSH 整合技术有一定的帮助。 本公司使用 MyEclipse6.0 构建 SSH 项目。对公司开发部开会讨论,开发工具MyEclipse6.0。另外需要指出的是,SSH 的整合有很多方法,这里只介绍其中的一种。作为 Java EE 的开发,我们使用Tomcat5.5 作为 Web 容器,使用 MySQL 作为数据库。 1.准备环境 下面是我们需要使用的软件开发环境: MyEclipse6.0 Tomcat5.5 MySQL5.1 JDK6.0 需要指出的是,各个软件的版本号并不一定需要和上面列出的相同。但是,由于我们编写本教程时的 实验环境是由上述各版本系统搭建的,因此不能确保其它版本的软件是不是能够正常运行。另外由于 MyEclipse 中已经附带了 SSH 所需要的各种库文件,所以我们一般不再需要另外的准备。 对于软件的设臵,我们将 MySQL 数据库编码设臵为 UTF-8。具体方法为: 安装好 MySQL 后,打开 MySQL Server Instance Config Wizard,请根据下面的图示进行设臵: 1) 启动 MySQL 配臵向导界面,点击 Next 继续;

JAVAWeb课程设计--注册登录系统--用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。 本次课程设计的主要内容有: ●系统概述 ●设计数据库 ●SSH三大框架的整合 ●MD5加密的实现(选做) ●注册系统的实现 ●登录系统的实现

1、系统概述 本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web系统。 1.1系统功能简介 本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。 当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。 当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。 1.2系统总体结构 本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的

SSH2_增删查改实例

SSH2 增删查改实例 (0)软件和框架版本: MyEclipse 6.0.1 Tomcat 6.0.14 Sturts2 1.8 Hibernate 3 Spring 2.0 Mysql 5.1 (一)引入包(共73个,不一定都需要,但是我的项目是这么多,经过调试,有没包冲突)

(二)创建数据库表 建立数据库octtest,并创建user表,表里面一共4个字段:id,姓,名,年龄。 语句如下: create database octtest; user octtest; DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL, `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `age` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; (三)用myeclipse 中自带的hibernate reverse engineering 工具,根据刚才创建的user表,自动生成实体User 和相应的User.hbm.xml配置文件。 1)在myeclipse中的视图中创建连接数据库连接,如下图:

填入mysql数据库相应的路径,用户名,密码等信息。注意:这里要引入mysql-connector-java的jar包,需要从外部导入。 2)连接数据库正常后,选择octtest数据库中的user表,右键-》hibernate reverse engineering。自动生成实体User 和相应的User.hbm.xml配置文件。(正常情况下可以生成,但是笔者生成engineer有问题,所以只能够手动创建User类和相应的User.hbm.xml,,所以如果读者顺利创建,可跳过2a,2b两部) 2a)创建User实体类 User.java package com.bean; public class User { public Integer id; public String firstname; public String lastname; public int age;

ssh2实例(带截图)

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过一个实例,详细的为大家讲解如何实现全注解式的开发。 开发环境 JDK1.6.0_18 Eclipse3.2.1 MyEclipse5.1.0 Tomcat6.0.10 MySQL5.0.27 Navicat Lite for MySQL 8.1.20 每个人的开发环境可能会有差异,但有一点我需要说明的是,JDK的版本不得低于1.5,因为用到了很多1.5版才支持的新特性。Tomcat和MySQL请不要低于我所用的版本,因为我没在其它的版本上进行测试。Navicat则是MySQL数据库的图形化操作工具。我在这里假定各位目前已经设置好了开发环境,下面就开始详细的说明。 由于要阐述的内容比较多,大象决定将它们划分成个几章节来讲,这一章就主要来说说jar包的选择。 第一部分:选择必须的jar包 新建一个web项目,然后将必要的jar包COPY到lib里面。根据本文实例demo,大象给出下图中的最少jar包配置。 我对这些jar包进行一下说明,方便大家理解。

解压Struts2.1.6的lib文件夹,从中选出上面7个jar包添加到我们的工程库中。commons-logging、freemarker、ognl、struts2-core、xwork这5个还是struts2的核心包。但在Struts2.1.6这个版本中,还需要加上commons-fileupload包。如果没有,则启动就会报错,不过不需要像网上传言的那样还得加上commons-io的jar包,这些大象都亲自做过测试。在本实例中,我将对struts2也采取注解的方式,所以用到了struts2-convention-plugin-2.1.6.jar这个插件。因为要与spring整合,所以struts2-spring-plugin-2.1.6.jar也必不可少。 大象在这里偷个懒,直接将spring的完整jar包加了进来,如果各位想精简类库的话,就选取它的分类jar包吧。比如本例使用struts2作为MVC框架,所以spring的webmvc就不可能用到了。有想改的朋友请自己动手改下。另外有点我想说下,如果采取完整spring的jar包,还需要Spring2.5.6\lib\concurrent文件夹中的backport-util-concurrent.jar,如果不加这个,spring会报错。但是采取spring分类jar包的形式,这个可以不用加,至于具体使用什么需要依赖这个包,大象还没去测试过,这个有待验证。还有lib\slf4j下的日志包,目前很多都开始采用基于slf4j 接口的日志器,它的好处就是日志器是根据slf4j的接口来进行实现,可以在不改变代码的情况下更换日志器。最后Spring的源代码中使用的是commons-logging记录日志,因此这个包不能少,不过因为struts2也用到了,所以这里就省了。 Hibernate从3.3版开始,对jar包结构做了一次大的调整,我们只需要加入lib\required文件夹下面的6个jar包。请注意这6个jar包都是使用Hibernate所必须的。另外再加上hibernate 核心包。这里我将slf4j-api-1.5.2.jar换成了1.5.0,这是因为slf4j是一个通用日志接口,不提供任何实现,我在demo里面使用的是log4j,而hibernate包里面没有log4j的slf4j实现。而且如果版本不一致,会有异常,因此我就采用Spring2.5.6\lib\slf4j里面提供的配套版本。另外我将commons-collections-3.1.jar换成了Struts2.1.6里面的3.2版。

ssh框架整合搭建

Struts1.2+Spring2.5+Hibernate3.2框架搭建(一) 1. 准备 1.1.创建工程 1.2.在工程中建包 2. Struts 部分 2.1.添加Struts 功能支持 2. 2.创建 ActionForm 类 2.3. 创建 Action 类 2.4. 创建jsp 文件 2.5.修改Action类 2.6.测试struts框架 3.Spring 部分 3.1. 添加Spring 功能支持 3.2. 配置web.xml 文件 3.3. 配置struts-config.xml 文件 3.4. 修改Spring 配置文件applicationContext.xml 3.5. 增加log4j日志功能 3.6. 测试 4. Hibernate 部分 4.1. 创建sqlserver2000 数据库和表 4.2. 创建 MyEclipse 数据库驱动(DB Driver) 4.3. 添加 Hibernate 功能支持 4.4. 创建对象关系映射(ORM)的相关文件 4.5. 创建数据层: IUsersDAO.java 接口和 UsersDAOImpl.java 类,业务层: IUsersBusiness.java接口和UsersBusinessImpl.java类。 4.6. 修改 LoginAction.java 文件 4.7. 修改Spring配制文件 applicationContext.xml 4.8. 测试 Struts1.2+Spring2.5+Hibernate3.2框架搭建 1. 准备 工具:MyEclipse 8.0 GA、Tomcat 6.0 环境:Struts1.2、Spring2.5、Hibernate3.2、sqlserver2000 1.1.创建工程

图解SSH框架配置步骤

图解SSH框架配置步骤 核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为 ssh 做好准备 2.1 下载包 Struts2 现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为ssh做好准备 2.1下载包 Struts2.1.6包下载: https://www.360docs.net/doc/5e12317852.html,/download.cgi#struts216 Full Distribution: o struts-2.1.6-all.zip (110mb) [PGP] [MD5] Hibernate3.3包下载: https://https://www.360docs.net/doc/5e12317852.html,/6.html Spring2.5下载: https://www.360docs.net/doc/5e12317852.html,/download

2.2搭建开发环境 打开MyEclipse,新建一个web project,如图: 注意:J2ee版本设为java ee 5.0

点击Finish完成,建好的工程如图: 如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:

SSH2整合

Spring+Hibernate+Struts2整合文档 一、Spring+Struts2整合: 1、spring配置在web.xml文件中的上下文监听器: contextConfigLocation /WEB-INF/applicationContext*.xml org.springframwork.web.content.ContextLoaderListener 2、struts2配置在web.xml文件中的过滤器: struts2 org.apache.struts2.dispatcher.FilterDispatcher org.springframework.web.context.ContextLoaderListener struts2 /* 3、设置struts.xml文件,就可以使用spring的IOC来管理struts的Action:

SSH三大框架整合(详细版)

1:构建WEB项目 2:构建数据库 3:加入依赖包 尽量不要依赖IDE,通过自己手动加包完成 访问数据库需要的包:mysql的驱动包 Hibernate的包:hibernate3.jar 核心包 依赖的必须包:antlr-2.7.6.jar 用于解析成HQL语句的包 commons-collections-3.1.jar apache提供的包,提供对集合框架的增强 dom4j-1.6.1.jar 解析XML文件的包 javassist-3.9.0.GA.jar 动态修改字节码需要用到的包 jta-1.1.jar 用于JTA事务的包 slf4j-api-1.5.8.jar 日志接口包---》依赖一定的实现包 slf4j-log4j12-1.5.0.jar log4j.jar 另外一种实现包:slf4j-simple-1.5.10.jar 可选的包:c3p0-0.9.1.jar 用于创建C3P0连接池的包 ehcache-1.2.3.jar :用于缓存实现的包 cglib-2.2.jar 动态修改字节码的包 Spring的包:spring.jar 核心包 aopalliance.jar 使用Aop功能可以用到的包 aspectjrt.jar aspectjweaver.jar 使用ASPECTJ表达式需要用到的包 如果是使用DBCP连接池的话,需要两个jar包 commons-dbcp.jar commons-pool.jar 如果需要用到commons增加包的话,可以加入以下包 commons-beanutils.jar commons-lang.jar commons-logging.jar Struts2的包:commons-fileupload-1.2.1.jar commons-io-1.3.2.jar freemarker-2.3.13.jar :在Struts2 中默认使用的是FreeMarker模板引擎 ognl-2.6.11.jar :Struts2中使用OGNL表达式 struts2-core-2.1.6.jar 核心包 xwork-2.1.2.jar 核心包 struts2-spring-plugin-2.1.6.jar Struts2跟Spring整合需要的插件包 4:构建项目分包结构 5:放置配置文件 6:创建POJO和相对应的hbm.xml 7:修改空白的Hibernate.cfg..xml并创建表结构 8:创建DAO,SERVICE,ACTION 9:修改配置文件

SSH三大框架开发案例

jdk6+myeclipse8.5+tomcat6+oracle+spring2.0+hibernate3+struts2 好了,开始我们的第一个ssh2之旅吧。 首先先分析一下我们的第一个ssh2项目的需求,简单的说就是有一张表单,让你填写用户名和密码,提交后存入数据库。就这么简单,呵呵。 第一步:。我们首先新建一张mysql数据表。 Sql如下: Create table t_employee( Id integer not null primary key, Name varchar(20), Age varchar(20), Sex varchar(20), Tel varchar(20), Address varchar(20))

数据创建好后结构如下: 第二步 打开myeclipse,新建一个web项目,命名为ssh2-2, java ee规范我们选择5,如图 第三步务必小心的一步 导入ssh2的各个jar,步骤如下: 选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳

出如图 务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next,去掉specify database……复选框,next,去掉create session……复选框,finish。 再次选中选中当前的项目后,点击菜单烂的myeclipse---project capablities----add spring 项,跳出如图

依然务必按照如是选择,jar文件选择如下5个:

交换机ssh典型配置案例

交换机SSH应用配置: 网络连接: SSH终端与交换机建立本地连接,能ping通交换机即可。 交换机及终端配置过程: 在交换机上,SSH支持的认证方式有两种,分别为口令认证和RSA认证。此处采用的SSH客户端为免费的putty程序。 1、口令认证方式: 交换机上的配置: [Quidway] rsa local-key-pair create [Quidway] user-interface vty 0 4 [Quidway-ui-vty0-4] authentication-mode scheme [Quidway-ui-vty0-4] protocol inbound ssh [Quidway] local-user ssh1 [Quidway-luser-ssh1] password simple huawei [Quidway-luser-ssh1] service-type ssh [Quidway] ssh user ssh1 authentication-type password 注:此时添加的ssh用户ssh1的级别为默认的级别1,如果想要管理交换机还需在交换机上配置super password;也可以直接配置ssh1的级别为最高的level 3: [Quidway-luser-ssh1] service-type ssh level 3 客户端的配置: 在Host Name处输入交换机的ip地址:

交换机支持的SSH版本只能为1:

在下面的界面里面选择验证方式为SSH1,不选择验证参数:

单击Open按钮,出现登陆提示框,输入用户名及密码即可:

搭建SSH框架步骤.

搭建SSH框架步骤 一、建数据库 二、建Web工程 打开Eclipse在工程栏—>鼠标右击New—>选择Web project—>project Name输入Demo;勾起Java 5.0单选按钮—>完成—>在Src文件夹下创建dal、bll、entity、https://www.360docs.net/doc/5e12317852.html,、 bll.action三个包以及两个子包。 三、添加框架 1. 添加Struts 选中所建的Web工程—>鼠标右击选择MyEclipse—>选择Add Struts Capabilites…—>Struts specification选择Struts1.2;Base package for new class单击Brouse选择文件路径为dal包;勾掉多选按钮Install Struts TLDs —>完成 2. 添加Spring 选中所建的Web工程—>鼠标右击选择MyEclipse—>选择Add Spring Capabilites…—>勾起多选按钮Spring 2.5 Aop Libraries;勾起多选按钮 Spring 2.5 Core Libraries;勾起多选按钮Spring 2.5 Persistence Core;勾 起多选按钮Spring 2.5 Web Libraries;勾起单选按钮Copy checked Library contents…—>单击Browse选择路径为WEB-INF包—>完成 3. 添加Hibernate 选中所建的Web工程—>鼠标右击选择MyEclipse—>选择Add Hibernate Capabilites…—>勾起单选按钮Copy checked Library Jars to…—>选择 Spring configuration file—>选择Existing Spring configuration file;

一个完整的SSH的例子源代码

一个完整的SSH的例子源代码 各个文件齐全 各个文件都是我从项目中一个一个拷贝出来的,一个都不少 Web.xml contextConfigLocation classpath:beans.xml org.springframework.web.context.ContextLoaderListener struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*

整合SSH三大框架介绍

一.在MyEclipse里先建立一个Web project 的项目,选最新版本的java ee。 二.添加struts2框架支持 1.引入struts2必须得几个jar包,放在WebRoot->WEB-INF->lib 目录下。 2.将WEB应用部署到tomcat服务器上:找到tomacat的安装目录Tomcat6.x\apache-tomcat-6.0.33\conf,打开其中的server.xml文件,在文件末尾上面加入例如 这样的句子,其中path的值为你需要访问网站的上下文,docBase的值为该web项目的WebRoot所在的目录,最后一个readloadable最好选true。 3.在WebRoot->WEB-INF->web.xml中加入struts2的过滤

器将部署好的应用纳入到struts2的管辖范围类,具体代码如下 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPre pareAndExecuteFilter struts2 /* 4.在web项目的src目录下,建一个struts.xml文件,这里是处理struts整个流程的文件。在其中加入 上面的name随便取,extends绝对不能变。 5.这样以后,启动tomcat服务器看看能不能正常启动,如果正常启动后,在浏览器上访问,http://localhost/上下文/index.jsp看能不能进入,若能进入则表示struts2的框架已经成功加到web项目中了,可以开始下一步了。

整合ssh+ajax案例

SSH+Ajax整合 前几周由于电脑出了点小问题,导致我的学习被耽误了一个多礼拜,还好利用元旦两天放假的时间,我终于把SSH整合技术,和Ajax(运用dwr框架)用户体验技术给补上了。不过这些只是些简单的小例子。SSH和Ajax还有很多很高深的东西还有待我们去发掘!!不多说废话了。我把我的配置步骤及环境一步一步的写出来,以供大家参考: 首先说下我的配置环境: 开发工具:MyEclipes6.6 数据库:Mysql 首先在MySql中建立好数据库(抱歉,我还不会用hibernate的逆向工厂去生成数据库): create database test; use test; create table userinfo ( uid int primary key, uName varchar(50), uPass varchar(50), ) //插入数据部分不写了,这个我想大家都应该会吧! select * from userinfo; //以下是我的数据库中的信息 数据库建好我们来搭建SSH框架吧! 1.首先创建web工程 2.在工程中添加SSH支持 SSH的添加顺序和他们的(SSH=Struts+Spring+Hibernate)缩写名字顺序是一致的,不知道起名字的时候是不是按照他们的引入顺序起的。注意:SSH支持引入的时候必须是这个顺序,否则里面会出现很多错误。解决起来很麻烦。尤其是spring的部分。。。所以此顺 序大家要切记,不要弄反了!!具体步骤如下: 工程上点击右键选择MyEclipes->Add Struts Capabilities...

弹出Struts配置窗口之后修改包名,点击Finish即完成了Struts的配置工作了 接下来配置Spring,同样右键工程选择MyEclipes->Add Spring Capabilites:如 图所示:

SSH框架整合详解(精典)

已经经过本人测试 第一步:准备工作 MyEclipse 6.0------T omcat6.0 所需jar文件:(所有jar文件已整理ssh_jars文件夹)注意:ssh_test项目中采用的是MySql 数据库。而本文档中配置的是Oracle数据库,注意其中配置的不同之处哦(在相应的地方有注明) 第二步:(建立项目,包结构,导入所需jar文件) 新建一个web project:

建立包结构如下: 各包功能说明: com.ssh.config : 配置文件(*.properties),如数据库配置信息com.ssh.resource : 资源文件 https://www.360docs.net/doc/5e12317852.html,m : 公共工具(util)包

com.ssh.util.orm.hibernate : hibernate DAO 模板com.ssh.model : 各实体类文件 com.ssh.service : 业务逻辑包相当于biz com.ssh..test : 测试包 com.ssh.action : struts Action 包结构可以根据自己需要自行划分 导入jar文件: 新建一个User Library: sshJars 添加jar文件:

将新建的User Library: sshJars加入到项目中: 第三步:撰写资源文件 jdbc.properties 在jdbc.properties 里写上连接数据库的配置信息,此文件的配置信息用于在spring的配置文件中使用,数据库的配置信息也可以写到Spring 的配置文件中,这在一个jdbc.properties文件中是为了方便更改. 在com.ssh.resource包中新建下列文件:

SSH集成spring-Struts2整合详细步骤

搭建SSH框架spring与struts2的集成 1:单独配置struts 一:导入struts包 二:编写Action public class JboaEmployeeAction extends ActionSupport { public String login(){ System.out.println("login.............."); return SUCCESS; } }

三:配置struts.xml index.jsp 四:配置web.xml ---struts2的核心控制器 index.jsp

ssh整合web导出excel案例

基于Spring,Struts2,Hibernate整合, jsp页面导出(下载)excel文件的简单应用 1)本例不采用Java任何导出excel文件常用的poi或者jxl 等第三方jar包,仅仅基于I/O,做一个最简单的ssh整合excel文件导出(下载)。 2)2-3为功能展示 a.主页展示 ·导出当前页到excel文件 ·导出全部到excel文件 b.详细信息展示(下属子地名) ·导出当前页到excel文件 3)4-7为ssh整合相关xml配置 a. Spring相关xml配置 b. Hibernate相关xml配置 c. Struts2相关xml配置 d. web.xml配置(Spring容器的实例化,struts过滤器的配置) 3)8-14为源代码 a.action代码 b.service代码(导出excel文件具体实现,包括下载文件名中文乱码问题,详见代码注释) c.dao代码 4)15-17为jsp页面 a.index.jsp(主页) b.list.jsp(列表显示) c.detail.jsp(详细信息-子地址列表显示)

1.导入相关jar包(ssh+dbcp) 2.本例导出全国地址详细信息,数据库中数据内容如下: 3.功能展示 a.主页

b.导出当前页(文件名为当前页起始id到结束id)

c.导出当前页的excel文件内容 d.导出全部

e.下属地名详细信息 f.导出下属地名

4.spring配置

相关文档
最新文档