搞了很久的ssh整合,总是环境的问题而半途而废,甚至让人心灰意冷,今天终于完成了ssh的完美整合,这以为ssh的大门永远的向我敞开了,庆祝一下。
1,注意添加jar的顺序 先添加struts+spring+hibernate 这样子据说可以解决jar的冲突问题,一般是spring和hibernate jar包的冲突,删除冲突的jar包 保留最新的jar包
2,用spring托管hibernate(sessionFactory由spring管理,在sessionFactory中注入dataSource)
<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中则可以完成一次业务的处理。
<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 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配置文件的路径,以及监听。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
//配置application的路径
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>//配置application加载的监听
文本加载还需要在struts中配置plugIn
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" />
</plug-in>
这样就能够在应用程序启动就能够初始化静态的单例bean工厂了
5,spring 过滤器的配置
//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的中编写。
<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:
<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
<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负责处理HTTP请求,调用业务逻辑;Hibernate则负责数据库操作;而Spring则作为整体的粘合剂,管理它们之间的...
SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...
最后,测试和调试是验证SSH整合是否成功的重要步骤。可以通过单元测试或集成测试来确保各个组件正常工作,同时,使用如Eclipse、IntelliJ IDEA等IDE的调试工具可以方便地追踪代码执行过程。 总的来说,SSH整合提供...
本资源提供的是SSH整合的原代码,涵盖了通过注解和XML配置两种方式进行整合的方法,并且已经过测试,确保其可行性和原创性。以下是关于SSH整合及这两种配置方式的详细知识: 1. **Struts框架**:Struts是一个基于...
SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...
SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...
SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...
这个"ssh整合实例1"可能是针对初学者的一个教程,旨在帮助他们理解如何配置和使用SSH来连接到远程服务器。在Linux和Unix系统中,SSH广泛用于执行命令、传输文件以及管理服务器,而其安全性得益于数据的加密。 SSH...
SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...
SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...
SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...
SSH整合指的是将Struts2、Hibernate和Spring这三个流行的开源Java框架进行集成,以构建高效、模块化的企业级Web应用程序。这三个框架分别负责表现层、持久层和业务逻辑层的管理,SSH整合使得开发者能更好地管理和...
SSH整合是指在Java Web开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以实现高效、灵活和可扩展的业务应用。这些框架分别负责不同的职责:Spring作为核心容器,管理对象的依赖注入;Struts2是MVC...
11. **测试运行**:通过NetBeans的内置Tomcat服务器或独立的Servlet容器运行项目,验证SSH整合是否成功。 这个实例提供了一个基础的SSH整合学习平台,你可以在此基础上进行功能扩展和性能优化。通过实践,你可以更...
SSH整合是指将Struts、Spring和Hibernate这三个Java开源框架结合在一起,用于构建高效、可维护的企业级Web应用程序。Struts提供了MVC(Model-View-Controller)架构,Spring强化了依赖注入和事务管理,而Hibernate则...
SSH整合是指将Spring、Struts2和Hibernate三个开源框架整合在一起,实现MVC设计模式的高效开发模式。在这个过程中,Spring作为应用的核心容器,负责管理Bean;Struts2作为表现层框架,处理用户请求和视图展示;...
完成上述配置后,通过运行简单的测试用例来验证SSH整合是否成功。如果一切正常,你应该能够从客户端发起请求,经过Controller,调用Service,由DAO操作数据库,最后返回结果到View。 SSH整合的关键在于理解每个框架...
SSH整合是指Spring、Struts和Hibernate这三大开源框架的集成,它们在Java Web开发中扮演着重要的角色。Spring提供依赖注入和AOP(面向切面编程),Struts处理MVC模式,而Hibernate则是持久层解决方案,负责数据库...
SSH整合购物车有上传浏览是将Secure Shell (SSH) 技术与Web应用程序结合,实现安全的文件上传和购物车功能的过程。SSH是一种网络协议,主要用于加密网络连接,确保数据在传输过程中的安全性。在电子商务网站中,SSH...