`
anson_xu
  • 浏览: 513136 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

ssh 整合测试

    博客分类:
  • SSH
阅读更多
ssh 整合测试
关键字: ssh整合
搞了很久的ssh整合,总是环境的问题而半途而废,甚至让人心灰意冷,今天终于完成了ssh的完美整合,这以为ssh的大门永远的向我敞开了,庆祝一下。

1,注意添加jar的顺序 先添加struts+spring+hibernate 这样子据说可以解决jar的冲突问题,一般是spring和hibernate jar包的冲突,删除冲突的jar包 保留最新的jar包

2,用spring托管hibernate(sessionFactory由spring管理,在sessionFactory中注入dataSource)

Xml代码
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="dataSource"> 
        <ref bean="dataSource"/> 
    </property> 
    <property name="mappingResources"> 
    <list> 
    <value>com/v512/guestbook/model/Guestbook.hbm.xml</value> 
    <value>com/v512/guestbook/model/Admin.hbm.xml</value> 
    </list> 
    </property> 
    <property name="hibernateProperties"> 
    <props> 
        <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> 
        <prop key="hibernate.show_sql">true</prop> 
    </props> 
    </property>         
</bean> 
 
<bean id="dataSource" 
    class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" 
        value="oracle.jdbc.driver.OracleDriver"> 
    </property> 
    <property name="url" 
        value="jdbc:oracle:thin:@localhost:1521:test"> 
    </property> 
    <property name="username" value="scott"></property> 
    <property name="password" value="tiger"></property> 
</bean> 

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>com/v512/guestbook/model/Guestbook.hbm.xml</value>
<value>com/v512/guestbook/model/Admin.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:test">
</property>
<property name="username" value="scott"></property>
<property name="password" value="tiger"></property>
</bean> 3,在application中配置好dao和manager,dao层是负责和数据库的交互,也就是説DB是dao的客户,而用hibernate操作数据库必须通过session,session是完成一次的数据库的操作,session通过sessionFactory获取,所以dao持有sessionFactory则可以操作数据库,因此将sessionFactory注入到dao层,而将dataSource注入到SessionFactroy,service负责业务的应用,他的客户是action,因此将manager注入到action中则可以完成一次业务的处理。

Xml代码
   
<bean id="guestbookDao" 
  class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate" 
  abstract="false" lazy-init="default" autowire="default" 
  dependency-check="default"> 
  <property name="sessionFactory"> 
   <ref bean="sessionFactory" /> 
  </property> 
</bean> 
<bean id="adminDao" 
  class="com.v512.guestbook.dao.hibernate.AdminDaoHibernate" 
  abstract="false" lazy-init="default" autowire="default" 
  dependency-check="default"> 
  <property name="sessionFactory"> 
   <ref bean="sessionFactory" /> 
  </property> 
</bean> 
   
<bean id="guestbookManager" 
  class="com.v512.guestbook.service.impl.GuestbookManagerImpl" 
  abstract="false" lazy-init="default" autowire="default" 
  dependency-check="default"> 
  <property name="guestbookDao"> 
   <ref bean="guestbookDao" /> 
  </property> 
</bean>   
<bean id="adminManager" 
  class="com.v512.guestbook.service.impl.AdminManagerImpl" 
  abstract="false" lazy-init="default" autowire="default" 
  dependency-check="default"> 
  <property name="adminDao"> 
   <ref bean="adminDao" /> 
  </property> 
</bean></beans>  


<bean id="guestbookDao"
  class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
</bean>
<bean id="adminDao"
  class="com.v512.guestbook.dao.hibernate.AdminDaoHibernate"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
</bean>

<bean id="guestbookManager"
  class="com.v512.guestbook.service.impl.GuestbookManagerImpl"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="guestbookDao">
   <ref bean="guestbookDao" />
  </property>
</bean>
<bean id="adminManager"
  class="com.v512.guestbook.service.impl.AdminManagerImpl"
  abstract="false" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="adminDao">
   <ref bean="adminDao" />
  </property>
</bean></beans> 整个applicationContext.xml如下

Xml代码
<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 
 
 
    <bean id="sessionFactory" 
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
        <property name="dataSource"> 
            <ref bean="dataSource"/> 
        </property> 
        <property name="mappingResources"> 
        <list> 
        <value>com/v512/guestbook/model/Guestbook.hbm.xml</value> 
        <value>com/v512/guestbook/model/Admin.hbm.xml</value> 
        </list> 
        </property> 
        <property name="hibernateProperties"> 
        <props> 
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> 
            <prop key="hibernate.show_sql">true</prop> 
        </props> 
        </property>         
    </bean> 
      
    <bean id="dataSource" 
        class="org.apache.commons.dbcp.BasicDataSource"> 
        <property name="driverClassName" 
            value="oracle.jdbc.driver.OracleDriver"> 
        </property> 
        <property name="url" 
            value="jdbc:oracle:thin:@localhost:1521:test"> 
        </property> 
        <property name="username" value="scott"></property> 
        <property name="password" value="tiger"></property> 
    </bean> 
      
    <bean id="guestbookDao" 
        class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate" 
        abstract="false" lazy-init="default" autowire="default" 
        dependency-check="default"> 
        <property name="sessionFactory"> 
            <ref bean="sessionFactory" /> 
        </property> 
    </bean> 
    <bean id="adminDao" 
        class="com.v512.guestbook.dao.hibernate.AdminDaoHibernate" 
        abstract="false" lazy-init="default" autowire="default" 
        dependency-check="default"> 
        <property name="sessionFactory"> 
            <ref bean="sessionFactory" /> 
        </property> 
    </bean> 
      
    <bean id="guestbookManager" 
        class="com.v512.guestbook.service.impl.GuestbookManagerImpl" 
        abstract="false" lazy-init="default" autowire="default" 
        dependency-check="default"> 
        <property name="guestbookDao"> 
            <ref bean="guestbookDao" /> 
        </property> 
    </bean>     
    <bean id="adminManager" 
        class="com.v512.guestbook.service.impl.AdminManagerImpl" 
        abstract="false" lazy-init="default" autowire="default" 
        dependency-check="default"> 
        <property name="adminDao"> 
            <ref bean="adminDao" /> 
        </property> 
    </bean></beans> 

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>com/v512/guestbook/model/Guestbook.hbm.xml</value>
<value>com/v512/guestbook/model/Admin.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:test">
</property>
<property name="username" value="scott"></property>
<property name="password" value="tiger"></property>
</bean>

<bean id="guestbookDao"
class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="adminDao"
class="com.v512.guestbook.dao.hibernate.AdminDaoHibernate"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<bean id="guestbookManager"
class="com.v512.guestbook.service.impl.GuestbookManagerImpl"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="guestbookDao">
<ref bean="guestbookDao" />
</property>
</bean>
<bean id="adminManager"
class="com.v512.guestbook.service.impl.AdminManagerImpl"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="adminDao">
<ref bean="adminDao" />
</property>
</bean></beans>

4,spring就是一个Bean工厂,而再个bean清单都在applicationContext中而如何在应用程序启动的时候就能够加载,这份清单呢?所以还得在web.xml中配置spring配置文件的路径,以及监听。

Xml代码
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
//配置application的路径 

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
//配置application的路径Xml代码
<listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>//配置application加载的监听 

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>//配置application加载的监听Xml代码
文本加载还需要在struts中配置plugIn           

文本加载还需要在struts中配置plugIn          Xml代码
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
    <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" /> 
   </plug-in>                                                                                                                                 

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" />
   </plug-in>                                                                                                                                这样就能够在应用程序启动就能够初始化静态的单例bean工厂了

5,spring 过滤器的配置

Java代码
//filter 配置  
<filter>  
<filter-name>encodingFilter</filter-name>  
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
<init-param>  
<param-name>encoding</param-name>  
<param-value>UTF-8</param-value>  
</init-param>  
<init-param>  
<param-name>forceEncoding</param-name>  
<param-value>true</param-value>  
</init-param>  
</filter>  
//filter mapping 配置  
<filter-mapping>  
<filter-name>encodingFilter</filter-name>  
<url-pattern>/*</url-pattern>  
</filter-mapping> 

//filter 配置
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
//filter mapping 配置
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 加入springFilter的话要添加spring的web包

6,valiadator的配置(一般是 ValidatorForm)

步骤,添加路径:在/web-inf下加入validator-rules.xml和validations.xml

然后在struts中 要添加插件,错误信息在applicationResource中配置,具体的验证需要在validations.xml的中编写。

Xml代码
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> 
  <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validations.xml" /> 
  </plug-in>  

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
   <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validations.xml" />
   </plug-in>


struts中的插件是指明插件的位置,类型,以便应用程序启动时候加载

7,action在spring中的管理

action也可以作为一个bean在spring中管理,在struts中更改action的type为 org.springframework.web.struts.DelegatingActionProxy

eg:

Java代码
<action  
     attribute="loginForm" 
     input="/login.jsp" 
     name="loginForm" 
     parameter="method" 
     path="/login" 
     scope="request" 
     type="org.springframework.web.struts.DelegatingActionProxy"  validate="false" /> 

<action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      parameter="method"
      path="/login"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy"  validate="false" /> 如此这整个配置完毕,如果出现jstl不支持的情况,要把web。xml中的dtd修改为2.4

Xml代码
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4">   
分享到:
评论

相关推荐

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    在"SSH整合及测试亲测可用"的项目中,这三大框架被集成在一起,以实现高效的后端逻辑处理。通常,Struts2负责处理HTTP请求,调用业务逻辑;Hibernate则负责数据库操作;而Spring则作为整体的粘合剂,管理它们之间的...

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    SSH整合增删改查全部

    最后,测试和调试是验证SSH整合是否成功的重要步骤。可以通过单元测试或集成测试来确保各个组件正常工作,同时,使用如Eclipse、IntelliJ IDEA等IDE的调试工具可以方便地追踪代码执行过程。 总的来说,SSH整合提供...

    SSH 整合原代码 包括2种方式:注解&xml;配置 (已测试, 原创)

    本资源提供的是SSH整合的原代码,涵盖了通过注解和XML配置两种方式进行整合的方法,并且已经过测试,确保其可行性和原创性。以下是关于SSH整合及这两种配置方式的详细知识: 1. **Struts框架**:Struts是一个基于...

    SSH整合实例源码

    SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...

    SSH整合 银行管理系统

    SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...

    SSH整合例子(SSH例子)

    SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...

    ssh整合实例1 简单易懂的ssh整合,适合初学者

    这个"ssh整合实例1"可能是针对初学者的一个教程,旨在帮助他们理解如何配置和使用SSH来连接到远程服务器。在Linux和Unix系统中,SSH广泛用于执行命令、传输文件以及管理服务器,而其安全性得益于数据的加密。 SSH...

    SSH整合小项目

    SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...

    SSH整合的一个案例

    SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...

    SSH整合原理以及步骤详解

    SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...

    ssh整合jar包

    SSH整合指的是将Struts2、Hibernate和Spring这三个流行的开源Java框架进行集成,以构建高效、模块化的企业级Web应用程序。这三个框架分别负责表现层、持久层和业务逻辑层的管理,SSH整合使得开发者能更好地管理和...

    ssh整合 jar包

    SSH整合是指在Java Web开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以实现高效、灵活和可扩展的业务应用。这些框架分别负责不同的职责:Spring作为核心容器,管理对象的依赖注入;Struts2是MVC...

    一个简单的ssh整合的实例

    11. **测试运行**:通过NetBeans的内置Tomcat服务器或独立的Servlet容器运行项目,验证SSH整合是否成功。 这个实例提供了一个基础的SSH整合学习平台,你可以在此基础上进行功能扩展和性能优化。通过实践,你可以更...

    ssh整合所需jar包

    SSH整合是指将Struts、Spring和Hibernate这三个Java开源框架结合在一起,用于构建高效、可维护的企业级Web应用程序。Struts提供了MVC(Model-View-Controller)架构,Spring强化了依赖注入和事务管理,而Hibernate则...

    SSH整合详细步骤&SSH整合详细步骤

    SSH整合是指将Spring、Struts2和Hibernate三个开源框架整合在一起,实现MVC设计模式的高效开发模式。在这个过程中,Spring作为应用的核心容器,负责管理Bean;Struts2作为表现层框架,处理用户请求和视图展示;...

    SSH整合过程(图)

    完成上述配置后,通过运行简单的测试用例来验证SSH整合是否成功。如果一切正常,你应该能够从客户端发起请求,经过Controller,调用Service,由DAO操作数据库,最后返回结果到View。 SSH整合的关键在于理解每个框架...

    SSH整合的jar包

    SSH整合是指Spring、Struts和Hibernate这三大开源框架的集成,它们在Java Web开发中扮演着重要的角色。Spring提供依赖注入和AOP(面向切面编程),Struts处理MVC模式,而Hibernate则是持久层解决方案,负责数据库...

    SSH整合购物车有上传浏览

    SSH整合购物车有上传浏览是将Secure Shell (SSH) 技术与Web应用程序结合,实现安全的文件上传和购物车功能的过程。SSH是一种网络协议,主要用于加密网络连接,确保数据在传输过程中的安全性。在电子商务网站中,SSH...

Global site tag (gtag.js) - Google Analytics