`
lpzhouyang
  • 浏览: 35118 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

【Java EE】Struts2.1.6与Spring2.5.6框架整合

阅读更多
看到一篇不错的关于SSH整合的文章,转载啦~!
http://www.cnitblog.com/intrl/archive/2009/04/12/56286.html
(一)Struts2.1.6+Spring2.5.6的整合
1、在MyEclipse中新建项目(test)
2、Struts包导入
   暂时导入所必需的包,其他包将在用到时导入:
  •    commons-fileupload-1.2.1.jar
  •    commons-logging-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

3、复制在Struts目录的例子程序中WEB-INF\classes\struts.xml文件,粘贴到项目的src目录下,主要保留其文件头:
 1<?xml version="1.0" encoding="GBK" ?>
 2<!DOCTYPE struts PUBLIC
 3    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4    "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6<struts>
 7    <package name="struts2" extends="struts-default">
 8
 9    </package>

10</struts>
4、配置web.xml
 1<?xml version="1.0" encoding="UTF-8"?>
 2<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 5    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6
 7    <filter>
 8        <filter-name>struts2</filter-name>
 9        <filter-class>
10            org.apache.struts2.dispatcher.FilterDispatcher
11        </filter-class>
12    </filter>
13    <filter-mapping>
14        <filter-name>struts2</filter-name>
15        <url-pattern>/*</url-pattern>
16    </filter-mapping>
17
18    <welcome-file-list>
19        <welcome-file>index.jsp</welcome-file>
20    </welcome-file-list>
21</web-app>

5、引入Spring包,在dist目录下
   spring.jar
6、在src目录下建立三个文件
  
  • applicationContext-actions.xml
  •    applicationContext-beans.xml
  •    applicationContext-common.xml

   这三个文件其实是applicationContext.xml的分解,为的是避免所有配置放在同一文件,造成混乱。
   结构均如下:
 1<?xml version="1.0" encoding="GBK"?>
 2
 3<beans xmlns="http://www.springframework.org/schema/beans"
 4    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5    xmlns:context="http://www.springframework.org/schema/context"
 6    xmlns:tx="http://www.springframework.org/schema/tx"
 7    xmlns:aop="http://www.springframework.org/schema/aop"
 8    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 9                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
10                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
11                http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
12
13</beans>

7、需要在web.xml进行配置
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext-*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener> 

前一段代码的配置是因为我们配置了后一段代码的配置后它默认是到WEB-INF下查找applicationContext.xml文件,我们现在改到src目录下并进行文件分解。

8、需要引入Struts2中的另一个包
   struts2-spring-plugin-2.1.6.jar
9、测试是否整合成功
(1)建立页面login.jsp、welcome.jsp、error.jsp分别为登录页面、登录成功页面、出错页面
login.jsp
1<%@ page language="java" contentType="text/html; charset=GB18030"
 2    pageEncoding="GB18030"%>
 3<%@ taglib prefix="s" uri="/struts-tags"%>
 4<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5<html>
 6    <head>
 7        <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
 8        <title>登录页面</title>
 9    </head>
10    <body>
11        <s:form action="login" method="post">
12            <s:textfield name="username" label="username" />
13            <s:password name="password" label="password" />
14            <s:submit value="submit" />
15        </s:form>
16    </body>
17</html>

welcome.jsp
1<%@ page language="java" contentType="text/html; charset=GB18030"
 2    pageEncoding="GB18030"%>
 3<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4<html>
 5    <head>
 6        <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
 7        <title>登录成功</title>
 8    </head>
 9    <body>
10        用户名:${username }
11        <br>
12        密码:${password }
13        <br>
14    </body>
15</html>

(2)建包com.test.manager和com.test.manager.impl分别存放业务逻辑处理的接口和其实现,分别建立接口LoginManager.java和其实现LoginManagerImpl.java
LoginManager.java
1package com.test.manager;
2
3public interface LoginManager {
4    public boolean isLogin(String username, String password);
5}

LoginManagerImpl.java,
只是测试用,判断用户名密码是否为intrl、intrl,若是则登录成功
1package com.test.manager.impl;
 2
 3import com.test.manager.LoginManager;
 4
 5public class LoginManagerImpl implements LoginManager{
 6    public boolean isLogin(String username, String password)
 7    {
 8        if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim()))
 9        {
10            return true;
11        }
12        return false;
13    }

(3)在applicationContext-beans.xml把实现类配置上,以让Spring进行管理
   
<bean id="loginManager"
        class="com.test.manager.impl.LoginManagerImpl">
    </bean>
(4)创建包com.test.action用于存放action,并新建LoginAction.java,继承ActionSupport类
包含从页面所接收参数username、password,以及业务逻辑处理类LoginManager类型的loginManager,给username和password设置get、set,给loginManager设置set方法,以让Spring为我们自动注入;overwrite父类中的
 1package com.test.action;
 2
 3import com.opensymphony.xwork2.ActionSupport;
 4import com.test.manager.LoginManager;
 5
 6@SuppressWarnings("serial")
 7public class LoginAction extends ActionSupport {
 8    private LoginManager loginManager;
 9    private String username;
10    private String password;
11
12    public String getUsername() {
13        return username;
14    }
15
16    public void setUsername(String username) {
17        this.username = username;
18    }
19
20    public String getPassword() {
21        return password;
22    }
23
24    public void setPassword(String password) {
25        this.password = password;
26    }
27
28    public void setLoginManager(LoginManager loginManager) {
29        this.loginManager = loginManager;
30    }
31    
32    @Override
33    public String execute() throws Exception {
34
35        if(loginManager.isLogin(username, password))
36        {
37            return SUCCESS;
38        }
39        return INPUT;
40    }
41}

(5)在applicationContext-actions.xml中进行配置,也让Spring来管理LoginAction
    <bean id="loginAction" class="com.test.action.LoginAction"
        scope="prototype">
        <property name="loginManager" ref="loginManager"></property>
    </bean>

(6)在struts.xml中进行配置,处理页面提交的请求,配置action:login,login一定要和login.jsp中form的action属性名匹配。此时struts.xml文件如下:
 1<?xml version="1.0" encoding="GBK" ?>
 2<!DOCTYPE struts PUBLIC
 3    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4    "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6<struts>
 7    <package name="struts2" extends="struts-default">
 8        <action name="login" class="loginAction">
 9            <result name="success">welcome.jsp</result>
10            <result name="input">login.jsp</result>
11            <result name="error">error.jsp</result>
12        </action>
13    </package>
14</struts>



(二)Spring2.5.6+Hibernate3.3.1的整合
1、引入Hibernate必需的jar包
  • hibernate3.jar
  • antlr-2.7.6.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • javassist-3.4.GA.jar
  • jta-1.1.jar

slf4j-api-1.5.2.jar因为slf4j-api-1.5.2.jar只有接口,还需要其实现类,而Hibernate带有的jar包中并没有包含,所以还需自己到apache网站下载
slf4j-log4j12-1.5.2.jar
log4j-1.2.14.jar两个jar包,一个是其实现,log4j-1.2.14.jar是slf4j-log4j12-1.5.2.jar所需要用到的jar包
2、在web.xml中配置过滤器,让Spring为我们自动管理session,无需我们手动开、关Hibernate中的session
    <filter>
        <filter-name>hibernateFilter</filter-name>
        <filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hibernateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3、在web.xml中配置过滤器,处理字符集编码
  
 <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4、在applicationContext-common.xml中配置一些公共的配置
  
 <!-- 配置sessionFactory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
    </bean>

    <!-- 配置事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>

    <!-- 配置事务的传播特性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="modify*" propagation="REQUIRED" />
            <tx:method name="*" read-only="true" />
        </tx:attributes>
    </tx:advice>

    <!-- 那些类的哪些方法参与事务 -->

    <aop:config>
        <aop:advisor pointcut="execution(* com.test.manager.*.*(..))"
            advice-ref="txAdvice" />
    </aop:config>

5、在上一步中我们用到了aop,Spring本身并没有对其实现,而是使用了现成别人已经做好了的。需要引入两个jar包,在Spring中的 lib\aspectj 目录下
  • aspectjrt.jar
  • aspectjweaver.jar

6、 利用ANT+Xdoclet自动生成Hibernate配置文件
7、在MySQL中建立数据库test
8、部署项目,启动Tomcat服务器便可在数据库中见到Hibernate为我们自动生成了两张表t_group、t_user
9、由以上步骤可知,Spring与Hibernate整合成功。
(三)验证三个框架是否成功整合
1、对上面的【J2EE】Struts2.1.6与Spring2.5.6框架整合 中的com.test.manager.impl中的类LoginManagerImpl作如下修改:
继承HibernateDaoSupport
修改isLogin方法的实现
 1package com.test.manager.impl;
 2
 3import java.util.List;
 4
 5import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 6
 7import com.test.manager.LoginManager;
 8import com.test.model.User;
 9
10public class LoginManagerImpl extends HibernateDaoSupport implements
11        LoginManager {
12    @SuppressWarnings("unchecked")
13    public boolean isLogin(String username, String password) {
14        /**//*
15         * if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim())) {
16         * return true; } return false;
17         */
18
19        Object[] s = new Object[2];
20        s[0] = username;
21        s[1] = password;
22        List<User> users = this.getHibernateTemplate().find(
23                "from User user where user.username=? and password=?", s);
24        if (users.size() == 0) {
25            return false;
26        }
27        return true;
28    }
29}

2、因为我们所继承的类HibernateDaoSupport需要显示地注入sessionFactory,所以必须在applicationContext-beans.xml中修改loginManager的配置,增加一个所需注入参数
    <bean id="loginManager"
        class="com.test.manager.impl.LoginManagerImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

3、在MySQL中存入数据,用户名和密码均为intrl,以便测试时使用。
4、重新启动Tomcat服务,访问登录页,进行测试,可以成功读取数据库中的User信息进行验证。三个框架整合成功!!!
分享到:
评论

相关推荐

    Struts2.1.6与Spring2.5.6框架整合开发

    Struts2.1.6与Spring2.5.6框架的整合开发是Java Web开发中的常见实践,这两种框架各自有着独特的优势,结合使用可以构建出高效、可维护的Web应用程序。Struts2作为MVC(Model-View-Controller)框架,负责处理请求和...

    struts2.1.6+spring2.5.6

    Struts2.1.6与Spring2.5.6的整合是Java Web开发中的常见实践,主要用于构建MVC(Model-View-Controller)架构的应用程序。这个整合涉及到多个层次的知识点,包括Struts2和Spring的基本概念、它们各自的功能、以及...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解是一个关于Java EE企业级开发的经典教程,重点介绍了如何整合SSH(Struts2、Spring、Hibernate)三大框架,并利用注解进行开发。在这个教程中,作者“大象”...

    SSH框架配置Struts2.1.6+Spring2.5.6+Hibernate3.3.1 2

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是一种流行的企业级Java Web应用程序开发框架。这个框架的集成能够帮助开发者实现模型-视图-控制器(MVC)设计模式,提供数据持久化,以及应用层的管理和依赖注入...

    Struts2.1.6 Spring2.5.6 Hibernate3.3.2

    标题 "Struts2.1.6 Spring2.5.6 Hibernate3.3.2" 描述的是一个基于Java的企业级应用程序开发的集成框架,其中包含了三个核心组件:Struts2、Spring和Hibernate。这些组件都是Java Web开发中的关键库,分别负责MVC...

    SSH框架配置步骤图解(Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2

    我们需要 MyEclipse5.5、JDK 1.6、Java EE 5.0、Tomcat6.0、Struts2.1.6、Spring2.5.6 和 Hibernate3.3.1。首先,下载 Struts2.1.6、Hibernate3.3 和 Spring2.5 的安装包。 接下来,打开 MyEclipse,新建一个 Web ...

    Struts2.1.6+Hibernate3.3.1+Spring2.5.6整合jar包.zip

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自解决应用程序的不同问题...总的来说,Struts2.1.6、Hibernate3.3.1和Spring2.5.6的整合是Java EE开发中一个经典的架构模式,至今仍被许多项目所采用。

    Struts2[1].1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解图文教程.doc

    SSH2框架,即Struts2、Spring和Hibernate的组合,是Java EE企业级开发中的常用技术栈。本教程将详细介绍如何在Struts2 1.6.0、Spring 2.5.6和Hibernate 3.3.1的环境下,利用全注解方式进行开发。这个教程适用于已经...

    struts+hibernate+spring框架配置

    在这个配置教程中,我们将以MyEclipse5.5作为开发工具,使用JDK 1.6、Java EE 5.0、Tomcat6.0以及Struts2.1.6、Spring2.5.6和Hibernate3.3.1这些版本的组件来搭建SSH框架。 首先,确保你的开发环境已经准备就绪。你...

    SSH最新框架整合(经典不容错过).pdf

    本实例详细介绍了如何在JavaEE项目中使用Struts2.1.6、Spring2.5.6和Hibernate3.3.1进行全注解式开发。开发环境要求JDK1.6.0_18及以上,Eclipse或MyEclipse,Tomcat6.0.10及以上,MySQL5.0.27及以上,以及用于数据库...

    login, 基于Java EE网站注册与登陆系统

    struts2.1.6, hibernate33.1, spring2.5.6, mysql-noinstall-5.1.31-win32.zip, mysql-connector-java-5.1.7, proxool0.91, jsonplugin-0.33.jar, PropertiesEditor。 可能还会陋了什么,但技术要点已经全了。...

    SSH整合之精华版 Struts2+Spring+Hibernate

    - **框架版本**: Struts2.1.6,Spring 2.5.6,Hibernate 3.3.1 **2. SSH框架简介** - **Struts2**: 是一个MVC框架,负责处理HTTP请求,实现视图和控制器的分离。 - **Spring**: 提供了依赖注入(DI)和面向切面编程...

    Spring+hibernate+struts2整合配置详解

    在Java Web开发中,Spring、Hibernate和Struts2(简称SSH)是一个常见的MVC框架组合,用于构建高效、可维护的Web应用程序。这三个框架各自专注于不同的领域:Spring负责依赖注入和管理业务逻辑,Hibernate处理持久层...

    SSH最新框架整合(经典不容错过)

    本文档将通过一个实际项目来详细介绍如何使用Struts2.1.6、Spring2.5.6以及Hibernate3.3.1版本构建一个全注解式的开发环境。 #### 二、开发环境搭建 在开始之前,我们需要确保拥有以下开发环境: - **JDK**: 版本...

    图解整合SSH,更清晰

    SSH是一个流行的Java企业级应用框架组合,由Struts、Spring和Hibernate三个开源项目组成。本文将通过图解方式,帮助你更直观地理解如何搭建和配置SSH框架,助你在IT求职路上增添竞争力。 1. **开发环境准备** - ...

    shh配置图解[归纳].pdf

    这里使用MyEclipse 5.5、JDK 1.6、Java EE 5.0、Tomcat 6.0、Struts 2.1.6、Spring 2.5.6和Hibernate 3.3.1。 二、准备SSH环境 1. 下载Struts 2.1.6包,下载地址为...

    SSH框架J2EE配置

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是一种经典的Java Web开发框架,用于构建企业级应用程序。本文将详细介绍SSH框架的配置过程,主要针对J2EE环境。 首先,确保你拥有以下开发环境: 1. 开发工具:...

    SSH框架配置步骤图解.docx

    - 框架版本:Struts2.1.6,Spring 2.5.6,Hibernate 3.3.1 2. **下载SSH所需库**: - Struts2:访问Apache官方网站下载Struts2.1.6的全量分发包。 - Hibernate:从Hibernate官网下载相应版本的包。 - Spring:...

    S2SH框架配置步骤

    同时,需要安装和配置Struts2.1.6、Spring2.5.6和Hibernate3.3.1这三个核心框架的对应版本。 1. **下载框架包**: - Struts2.1.6可以从Apache官网下载,选择Full Distribution的zip文件。 - Hibernate3.3.1的包...

    ssh 环境配置

    - 框架版本:Struts2.1.6、Spring2.5.6和Hibernate3.3.1。 2. **下载SSH组件**: - Struts2:可以从Apache官网下载Struts2.1.6全分布包。 - Hibernate:访问其官方网站或SourceForge获取Hibernate3.3.1包。 - ...

Global site tag (gtag.js) - Google Analytics