1、ssh2 最少包最简单配置整合 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 包下载: http:/struts.apache.org/download.cgi#struts216 Full Distribution: struts-2.1.6-all.zip (110mb) PGP MD5 Hibernate3.3 包下载: https:/www.hibernate.org/6.html Spri
2、ng2.5 下载: http:/www.springsource.org/download 2.2 搭建开发环境 打开 MyEclipse,新建一个 web project, 注意:J2ee 版本设为 java ee 5.0 点击 Finish 完成. 如果你的 myeclipse 还没有配置一个 web 服务器,那就进行下面的步骤,这里以 tomcat6为例: 打开 MyEclipsePreferences 窗口,展开目录树,设置好你的 tomcat6 的路径即可,前提你要先安装好 tomcat 哦。还有需要注意的一点是,看到目录树 tomcat6.x 下面的 JDK 了吗?点击它,也要把
3、tomcat 的 JDK 设为 jdk1.6 才行,以与 myeclipse 一致。 好了,工程已经建好了,下面就开始配置 struts 吧。配置之前先把 struts 的包下载下来哦,下载地址上面已经给出了。 3 配置 Struts2.0 .1 基础配置 1)引入 Struts 必需的五个 jar 包。下载 struts-2.1.6-all.zip 解压后,struts-2.1.6lib 目录下是 struts 所有的相关 jar 包。这么多 jar 包并不是 struts 必须得,使用 struts 只需要把下面 6 个引入即可,以后用到什么 jar 包,再引入。 Commons-logg
4、ing-1.0.4.jar Freemarker-2.3.13.jar Ognl-2.6.11.jar Struts2-core-2.1.6.jar Xwork-2.1.2.jar commons-fileupload-1.2.1.jar2)修改 WEB-INF 下的 web.xml 文件,增加 struts2 的配置。增加代码如下:这些配置代码对于 struts2 是不变的,直接复制到 web.xml 即可。 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 3)添
5、加 struts 配置文件。在 WEB-INF/classes 目录下,新建 struts.xml,模版如下: 好了,struts 基本配置完毕,是不是很简单? 现在把工程发布到 tomcat 上去测试一下,在工程名字上点击右键,选择 MyEclipseAdd and Remove project Deployments,在打开的窗口里,点击 Add,选择我们之前配置好的tomcat6 服务器。发布好了,启动 tomcat,如果启动无异常,则说明配置成功。 3.2 配置一个 Action 下面开始配置一个 Action 吧,以用户登录为例: 1)首先新建一个登陆页面 login.jsp,代码如
6、下: 登录 2)在我们已经建好的 struts.xml 中来配置登录的 action。这里定义登录 action 的名字为login,配置代码如下: index.jsp login.jsp login.jsp 3)下面就来编写具体的 action 类了。代码如下: 1 package test; 2 import com.opensymphony.xwork2.ActionSupport; 3 public class LoginAction extends ActionSupport 4 public String username; 5 public String password; 6
7、public String execute() 7 if(!username.equals(“admin“) 8 super.addFieldError(“username“, “用户名错误!“); 9 return ERROR; 10 11 if(!password.equals(“001“) 12 super.addFieldError(“password“, “密码错误!“); 13 return ERROR; 14 15 return SUCCESS; 16 17 public void validate() 18 if(username=null|username.length()=
8、0) 19 super.addActionError(“用户名不能为空“); 20 21 if(password=null|password.length()=0) 22 super.addActionError(“密码不能为空“); 23 24 25 26 4)好了,一个 Action 就创建完成了,重启 tomcat 测试一下吧。如果第一次使用 struts,你可能你明白上面的代码,以后慢慢学习即可,现在先来看一下效果吧。 打开登录页面 http:/localhost:8080/test/login.jsp,输入正确或错误的用户名和密码,看看有什么提示。 4 配置 Hibernate 4.
9、1 基础配置 1) 导入最小 jar 包,即使用 Hibernate3 所必需的 jar 包。下载 hibernate-distribution-3.3.1.GA 解压后,必需 jar 包都在 lib“required 目录下。必需 jar 包如下: hibernate3.jar-核心类库 antlr-2.7.6.jar-代码扫描器,用来翻译 HQL 语句 commons-collections-3.1.jar- Apache Commons 包中的一个,包含了一些Apache 开发的集合类,功能比 java.util.*强大 dom4j-1.6.1.jar-是一个 Java 的 XML AP
10、I,类似于 jdom,用来读写 XML 文件的 javassist-3.4.GA.jar- Javassist 字节码解释器 jta-1.1.jar-标准的 JTA API。 slf4j-api-1.5.2.jar 1) 创建 Hibernate 配置文件。在 WEB-INF“calsses 目录下(工程的 src 包下)新建hibernate.cfg.xml。这是 hibernate 连接数据库的配置文件。这里以连接 Oracle 为例: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:192.168.0.141:1521:TEST TEST
11、 test test org.hibernate.dialect.Oracle9Dialect true 1) 创建 Session 工厂类 HibernateSessionFactory。 让我们先了解一下 Session, Hibernat 对数据库的操作是通过 Session 来实现的,这里的session 不同于页面间传递参数的 session,而是类似于 JDBC 中的 Connection。Session 是Hibernate 运作的中心,对象的生命周期、事务的管理、数据库的存取都与 session 息息相关。 而 Session 是由 HibernateSessionFactor
12、y 创建的,是线程安全的,可以让多个执行线程同时存取 HibernateSessionFactory 而不会有数据共享的问题,但不能让多个线程共享一个Session。 HibernateSessionFactory 可以用 myeclispe 自动创建,这里就不贴出代码了。 注意:别忘了把数据库驱动包引入到工程中。对于 oracle 是 class12.jar。 4.2 示例 这个自己去测试一下吧。 5 配置 Spring2.5 5.1 基础配置 1) 导入 spring 包。下载 spring-framework-2.5.6 并解压后,在 spring-framework-2.5.6“dis
13、t 目录下找到 spring.jar,引入到工程中。 说明:spring.jar 是包含有完整发布的单个 jar 包,spring.jar 中包含除了 spring-mock.jar 里所包含的内容外其它所有 jar 包的内容,因为只有在开发环境下才会用到 spring-mock.jar 来进行辅助测试,正式应用系统中是用不得这些类的。除了 spring.jar 文件,Spring 还包括有其它 13 个独立的 jar 包,各自包含着对应的 Spring 组件,用户可以根据自己的需要来选择组合自己的 jar 包,而不必引入整个 spring.jar 的所有类文件。这里,为了使用方便,我们引入整
14、个 spring.jar。 2) 配置 web.xml 文件。Jar 包引入完成后,就开始配置 spring 了,首先修改web.xml 文件,增加如下代码: contextConfigLocation classpath*:spring/applicationContext*.xml 在这里,我们指定了 spring 配置文件的路径,即 WEB-INF/classes/spring 目录下的所有以applicationContext 开头命名的 xml 文件。 3) 在 src 下面新建 applicationContext.xml 文件。首先给这个文件加上 spring 的标头:注意:标头
15、是 2.5 的 不要引入 2.0, 错了可能 Spring 就不能正确加载。 5.2 示例 Spring 基本配置完毕,让我们建个示例来测试一下吧,首先在 test.spring 包下创建两个 java 文件: TUser.java、SpringTest.java。 TUser.java: 1 package test.spring; 2 3 public class TUser implements java.io.Serializable 4 private String username; 5 private String allname; 6 private String addres
16、s; 7 8 public String getUsername() 9 return this.username; 10 11 public void setUsername(String username) 12 this.username = username; 13 14 public String getAllname() 15 return this.allname; 16 17 public void setAllname(String allname) 18 this.allname = allname; 19 20 public String getAddress() 21
17、return this.address; 22 23 public void setAddress(String address) 24 this.address = address; 25 26 27 SpringTest.java: 1package test.spring; 2 3import org.springframework.context.ApplicationContext; 4import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6public class SpringTes
18、t 7 public static void main( String args ) 8 /加载 spring 配置文件,初始化 IoC 容器 9 ApplicationContext ac = new ClassPathXmlApplicationContext(“spring/applicationContext.xml“); 10 /从容器 接管 Bean 11 TUser user = (TUser) ac.getBean(“TUser“); 12 /输出欢迎信息 13 System.out.println( “Hello:“ + user.getUsername() + “;u is
19、 in “ + user.getAddress() + “ ; and u is “ + user.getAllname() ); 14 15 16 创建完毕后,就剩最后一步了,在 applicationContext.xml 中配置一个 bean,在 xml 中增加如下代码: 好了,下面运行一下吧,右键单击 SpringTest.java 选择 run as Java Application. 如果你的运行结果和上面一样,且没有异常,则说明 Spring 配置成功了。是不是很简单?不要骄傲,重要的是 Spring 与 Hibernate、Struts 的整合。继续吧! 5.3 整合 Stru
20、ts Spring 与 Struts 的整合其实就是把 Struts 的 Action 类交给 Spring 来管理,下面开始吧! 1) 导入 jar 包。在 Struts2.1.6 的 lib 目录中找到 struts2-spring-plugin-2.1.6.jar,引入到工程中。 2) 配置 web.xml 文件。在 web.xml 中加入以下代码: org.springframework.web.context.ContextLoaderListener 1) 现在就来看如何把 struts 的 action 交给 spring。以 struts 示例中的 login.action 为
21、例,首先创建一个 LoginAction 类的 Bean。在 applicationContext.xml 中增加如下代码: 这里,我们把这个 bean 的 id 设为 loginAction。Scope 设为 prototype,含义是每一次请求创建一个 LoginAction 类的实例, Scope 还有另一个值“singleton”意为“单例模式” 。 接下来修改 struts.xml 文件,把原来 login.action 的配置做如下修改: 把 改为 注意到有什么区别了吗?class 值设为了 loginAction,即 LoginAction 类的 bean 的 ID。这样我们就把
22、 LoginAction 类交给了 spring 管理。至于具体是怎么处理的,秘密在 struts2-spring-plugin-2.1.6.jar 中,有空自己就去研究吧,现在会用就可以了。 5.4 整合 Hibernate Spring 整合 Hibernate 主要是对 hibernate 的 Session 进行管理,包含 Session 的创建、提交、关闭的整个生命周期。Spring 对事务的管理应用了 AOP 的技术,配置前请先了解一下 AOP 的知识。 1) 配置 sessionFactory,让 spring 来创建 Session。在 applicationContext.xml 中增加如下代码: