一、Spring和hibernate集成:
web.xml文件中的
<listener>
org.springframework.web.context.ContextLoaderListener
</listener>
加载<context-param>contextConfigLocation</context-param>指定的文件,默认加载applicationContext.xml.可以自定义,我们一般写成applicationContext-*.xml,
1、其中applicationContext-common.xml文件中配置Hibernate的sessonFactory: <!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
缓缶涂梢约釉豩ibernate.cfg.xml配置文件,这就是spirng和Hibernate的集成
............
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/spring_struts_hibernate</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">bjsxt</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
..............
此后我们就可以在数据库层程序中通过创建sessionFactory,Configuration config = new Configuration().configure();
sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Account account=(Account)session.get(Account.class,new Long(1));进行数据库的操作;
当然数据库层的类如果继承自HibernateDaoSupport(Spring封装的)可以直接操作;
纾簍his.getHibernateTemplate().save(实例对象);
this.getHibernateTemplate().update(实例对象);
此外:这个applicationContext-common.xml文件中我们还用来配置声明式事务,指定哪些类的那些方法使用事务
2、applicationContext-action.xml主要是将Struts和Spring的集成:
3、applicationContext-bean.xml
二、Struts和Spring的集成配置:
web.xml文件中配置:
..........
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
负责管理我们的请求转向给ActionServlet这个大管家来管理,其中<init-param>中配置有config参数,值为/WEB-INF/struts-config.xml,这是告诉我们到哪里加载Struts配置文件,请求处理转向都是在其中配置的;
趕truts-config.xml文件中配置Action
<action>标签中的type属性需要修改为org.springframework.web.struts.DelegatingActionProxy
DelegatingActionProxy代理类主要是获取BeanFactory,然后根据<action>标签中的path属性值,到spring的IoC容器中查找本次请求的Action,
纾?
<action path="/login"
type="org.springframework.web.struts.DelegatingActionProxy"
name="loginForm"
scope="request"
>
<forward name="success" path="/login_success.jsp"></forward>
</action>
赼pplicationContext-action.xml中有如下配置:
<bean name="/login" class="com.bjsxt.usermgr.web.actions.LoginAction" scope="prototype">
<property name="userManager" ref="userManager"/>
</bean>
在spring中的配置如下:
<bean name="/login" class="com.bjsxt.usermgr.web.actions.LoginAction">
<property name="userManager" ref="userManager"/>
</bean>
*<bean>标签中必须使用name属性,name属性值必须等于struts-config.xml文件中<action>标签中的path属性值
* 必须注入业务逻辑对象
* 建议将<bean>标签中scope设置为prototype,这样就避免了struts Action的线程安全问题
一、配置jar包,建议不要建user library,分别找到相应的jar包拷贝到Webroot/lib下即可;
Struts_jar包:
*struts_install\struts-1.2.9-bin\lib下,所有jar包;
*jstl_install\jakarta-taglibs-standard-1.1.2\lib下的 jstl.jar和standard.jar
Hibernate_jar包:
* HIBERNATE_HONE/lib/*.jar;
* HIBERNATE_HOME/hibernate3.jar核心包;
* MySql JDBC数据库驱动;
Spring_jar包:
*spring-framework-2.0\lib\aspectj下:aspectjrt.jar和aspectjweaver.jar;
*spring-framework-2.0\lib\jakarta-commons下:commons-logging.jar;
*spring-framework-2.0\lib\log4j下:log4j-1.2.14.jar;
*spring-framework-2.0\dist下:spring.jar核心包;
二、找到配置相应的配置文件:
1、struts:
*将struts-config.xml文件拷贝到Webroot/WEB-INF下;
*将MessageResources.properties拷贝到src下;
*在web.xml文件中得开启支持:
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2、hibernate:
*拷贝hibernate.cfg.xml文件到src下;
*拷贝log4j.properties文件到src下;
*在实体类的相同包下创建实体类对应的文件,例如:实体类User,对应创建User.hbm.xml;
*对延迟加载的支持得在web.xml中配置:
<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、spring:
*拷贝applicationContext.xml文件到src下;
*对Spring的支持在得在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>
备注:以上代码的具体功能参见文档--->
eb.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!—编码-->
<filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>
com.bjsxt.drp.web.util.CharsetEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB18030</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!—对spring的支持-->
<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>
-->
或者改为servlet如下:
<servlet>
<servlet-name> SpringContextServlet </servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<!—对hibernate延迟加载的支持-->
<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>
</web-app>
分享到:
相关推荐
在本文中,我们将详细介绍如何使用 IDEA 创建一个 SSH 项目,包括项目的创建、配置和启动过程。 创建 Maven Web 项目 首先,我们需要在 IDEA 中创建一个新的 Maven 项目。在 IDEA 中,单击 "File" -> "New" -> ...
以上步骤是创建SSH项目的基本流程。在实际开发中,还需要考虑错误处理、权限控制、性能优化等方面。每个环节都可能涉及到复杂的配置和代码实现,因此需要深入理解SSH框架的工作原理,以便更好地运用它们。通过...
### MyEclipse创建SSH项目详解 #### 一、概述 本篇文章主要介绍如何在MyEclipse集成开发环境中创建一个基于Spring、Hibernate以及Struts2(简称SSH)的项目。通过详细的操作步骤与图文并茂的指导,帮助初学者快速...
在实际的项目中,开发者首先会在MyEclipse中创建一个SSH项目,配置Struts2、Spring和Hibernate的相关配置文件,如struts.xml、spring-context.xml、hibernate.cfg.xml等。然后,他们会定义实体类、持久化映射文件,...
ssh 项目 创建 教程 手把手教你实现第一个SSH项目
SSH 项目搭建步骤简单示例是指使用 SSH 框架搭建一个完整的 Java 项目的步骤,该示例展示了从创建项目到配置 Web.xml 文件、添加 Hibernate 支持、添加 Struts2 支持、配置 Hibernate 反转工程等步骤。 创建项目 ...
当我们在IDEA中创建一个SSH项目时,会需要引入SSH框架各自的jar包,以及其他如数据库驱动、日志框架等第三方库。这些库文件使得项目能够调用到丰富的功能,无需从零开始编写所有底层实现。 Struts2作为MVC框架,...
- 打开Eclipse,创建一个新的Web项目(File -> New -> Dynamic Web Project),并为其命名。 2. **修改web.xml**: - 需要在项目的`WEB-INF`目录下找到`web.xml`文件,并添加Struts2的相关配置。 ```xml ...
SSH项目是一个基于Java技术栈的Web应用程序实例,它集成了Spring、Struts和Hibernate三个核心框架,用于构建高效、可维护的企业级应用。这个“爱心宠物医院系统”就是这样一个示例,展示了如何在J2EE环境中开发和...
在SSH项目中,开发者可能已经创建了一个或多个数据库表,并通过Hibernate配置了这些表与Java对象的映射。 5. **JDK1.5**: 运行环境要求为JDK1.5,这意味着该项目是用Java 5语言编写的。Java 5引入了许多新特性,如...
构建基于Maven的SSH项目,通常需要以下步骤: 1. **初始化项目**:创建一个新的Maven项目,设置POM.xml文件,这是Maven项目的配置中心,包含项目的基本信息和依赖。 2. **添加SSH框架依赖**:在POM.xml中,你需要...
这个"java_SSH项目"显然是一个使用这三个框架构建的实际项目实例,对于想要深入理解和学习Java Web开发,特别是SSH框架集成应用的开发者来说,具有很高的参考价值。 Struts2作为MVC(模型-视图-控制器)框架,负责...
SSH项目整合是软件开发中的一种常见...这个简单的SSH项目整合案例,提供了一个基础的客户信息管理系统,涵盖了CRUD操作。通过学习和实践这个案例,开发者可以深入理解SSH框架间的协同工作原理,提升Java Web开发技能。
【描述】"javaweb structs2 ssprint Hibernate经典入门案例 聊天项目"强调了这是一个针对初学者的实践案例,通过Struts2、Spring和Hibernate这三个核心组件的集成,来创建一个聊天系统。Struts2作为MVC(模型-视图-...
通过这个简单的SSH项目实例,你可以了解到如何整合这三个框架,构建一个完整的Web应用程序,理解它们各自的角色以及如何协同工作。对于初学者来说,这是一个很好的起点,能帮助你深入理解Java Web开发的核心技术。
- 配置好所有文件后,可以运行项目,通过编写简单的 JUnit 测试或创建一个简单的 Struts2 动作来测试 SSH 整合是否成功。 在实际开发中,除了以上基本步骤,还需要考虑异常处理、安全性、事务管理等方面。SSH 项目...
在SSH项目实战的第一天,我们主要关注的是搭建Maven环境,并引入必要的前端资源库,如Jquery...通过这些步骤,我们便能成功地建立起一个基本的SSH项目环境,并具备了使用JqueryEasyUI和JqueryZtree进行前端开发的能力。
这个"ssh项目实战源码"提供了一个实际的项目实例,可以帮助开发者深入理解这三个框架如何协同工作,以及如何在实际项目中进行集成。 Struts2是MVC(Model-View-Controller)设计模式的实现,它负责处理用户请求,...