Struts2与Spring、Hibernate三者整合的过程示例:
示例工具:MyEclipse 7.0、Tomcat 6.0、MySql
步骤:
1.创建一个WEB工程,命名为BookShop(名字自己取,此处为示例工程名);
2.导入struts2的核心jar包,也就是在WEB-INF下的lib文件夹中放入jar包文件,如下图(图中 jar包为示例版本):
3.加载spring,选中工程名,右击并选择【MyEclipse】选项下的【Add Spring Capabilities...】(或者在工具栏中选择【MyEclipse】下的【Add Spring Capabilities...】),在弹出的对话框中进行如下图所示操作:
点击【Next】,点击Folder文本框后的【Browse】,在弹出对话框中选择spring配置文件存储位置为WEB-INF文件夹,如下图所示:
点击【OK】后,再点击【Finish】完成。至此,已经完成加载 spring,在WEB-INF文件夹下已经生成了配置文件applicationContext.xml。
4.加载Hibernate,选择【MyEclipse】下的【Add Hibernate Capabilities...】,在弹出对话框中进行如下图所示操作:
点击【Next】后,选择Existing Spring configuration file单选框,在SessionFactory Id文本框中填入"sessionFactory",如下图所示 :
点击【Next】,进行如下图所示操作:
该操作中,只需在Bean Id文本框中输入一个Id名,作为数据库源的代用名,意义不大。然后在DB Driver下拉列表中,选择MyEclipse中创建好的数据库源xiaoqi,其他信息将自动填写。点击【Next】,在弹出对话框中去掉 Create SessionFactory class?复选框,不创建该类,点击【Finish】完成(创建过程中,加载的jar包文件可能有重复,所以这个时候如果提示有某些jar包重复,问全部保存【Keep Exiting】,还是替换掉【Replace】,可以选择替换掉【Replace】)。
5.创建struts.xml文件,在src包下新建一个struts.xml文件,该文件内容如下:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--下述语句是将struts2交给spring管理 -->
<constant name="struts.objectFactory" value="spring" />
<!--导入struts-default.xml文件 -->
<include file="struts-default.xml"></include>
<!--将action内容放在package元素下,package元素的name值与extends值可以使用默认值,如下所示 -->
<package name="default" extends="struts-default">
<!--例如与用户登录相关的LoginAction,配置如下,其中,class值与 applicationContext.xml文件中该action的id值相对应,name值作为标识-->
<action name="loginAction" class="LoginAction">
<!--result元素设置页面跳转值,其中name值为目标页面的字符串标识,如下,登录失败时回到 login.jsp页面,成功时,转向success.jsp页面 -->
<result name="fail">/login.jsp </result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
6.配置web.xml文件,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
7.反向生成实体类文件
在src包下新建一个entity包,将前面数据源xiaoqi所示数据库bookshop中的user表反向生成 Hibernate实体类文件。
8.创建数据操作文件
在src包下创建dao包,在该包下新建类文件PersonManage.java,其内容如下所示:
package dao;
import java.util.*;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import entity.*;
public class PersonManage extends HibernateDaoSupport {
//普通用户登录验证
@SuppressWarnings("unchecked")
public boolean checkUser(String userName,String userPassword){
boolean flag = false;
String hql = "from User as user where user.userName = '"+userName+"' and user.userPassword = '"+userPassword+"'";
List<User> userList = this.getHibernateTemplate().find(hql);
if(userList.size()>0){
flag = true;
}
return flag;
}
}
9.创建Action
在src包下新建一个包,名为"com.xiaoqi.action"(名字仅为示例,只写一个com也可以,示例写法是采取struts中的action包名写法),在该包下新建一个action类LoginAction.java,其内容如下:
package com.xiaoqi.action;
import com.opensymphony.xwork2.ActionSupport;
import dao.PersonManage;
public class LoginAction extends ActionSupport{
private String userName;
private String userPassword;
private PersonManage personManage;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public void setPersonManage(PersonManage personManage) {
this.personManage = personManage;
}
public String execute(){
String page = "fail";
boolean flag = false;
flag = personManage.checkUser(userName, userPassword);
if(flag){
page = "success";
}
return page;
}
}
10.创建页面,创建登录页面login.jsp,内容如下:
<%@ page language="java" pageEncoding="gb2312"%>
<!-- 导入struts2标签库 -->
<%@taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>用户登录</title>
</head>
<body>
<center>
<div id="login">
<s:form action="loginAction">
<s:textfield label="用户名" name="userName"></s:textfield>
<s:password label="密码" name="userPassword"></s:password>
<s:submit value="登录"></s:submit>
</s:form>
</div>
</center>
</body>
</html>
页面中,先导入struts2标签库,用来创建form表单。form表单提交给与登录相关的 LoginAction.java文件,而LoginAction.java在struts.xml文件中相应的name值为"loginAction”,所以这里的action值为"loginAction"。至于用户名文本框与密码文本框的name值则与 LoginAction.java文件中的userName与userPassword完全匹配。
11.配置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.5.xsd">
<!-- 以下为数据源配置,自动生成 -->
<bean id="candy" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/bookstore">
</property>
<property name="username" value="root"></property>
<property name="password" value="sa"></property>
</bean>
<!-- 以下为sessionFactory配置,自动生成 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="candy" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>entity/User.hbm.xml</value></list>
</property></bean>
<!-- 配置PersonManage.java类文件 -->
<bean id="personManage" class="dao.PersonManage" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="sessionFactory" >
<ref local="sessionFactory"/>
</property>
</bean>
<!-- 配置LoginAction.java类文件 -->
<bean id="LoginAction" class="com.xiaoqi.action.LoginAction" >
<property name="personManage">
<ref bean="personManage" />
</property>
</bean>
</beans>
删除sam-2.2.3.jar cglib-2.1.3.jar 运行,OK.
分享到:
相关推荐
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于数据持久化,而Spring则提供了全面的依赖注入和...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合应用极大地提升了开发效率和项目的可维护性。在本示例中,我们将探讨如何将这三个框架集成在一起,实现一个完整的MVC(模型-视图-控制器)架构。 ...
Struts2、Hibernate和Spring是Java企业级应用中三大核心框架,它们的整合使用能够构建出高效、可维护性高的Web应用程序。本篇将深入剖析这三者如何协同工作,并提供实际范例应用。 首先,Struts2作为MVC(模型-视图...
这本由蒲子明编著的《Struts 2+Hibernate+Spring整合开发技术详解》深入探讨了如何将这三个框架有效结合,以构建高效、模块化的Web应用。书中第12到17章的内容涵盖了以下几个关键知识点: 1. **Struts 2框架**: -...
12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...
【标题】:“Hibernate、Struts2与Spring的整合项目” 【描述】:“这是一个将Hibernate、Struts2和Spring三大框架集成在一起的项目示例。它展示了如何在实际开发中有效地结合这三个强大的Java技术,实现数据持久层...
7. **学习资源**:网上有大量关于Struts2、Spring和Hibernate整合的教程和示例代码,初学者可以通过这些资源快速入门。同时,阅读官方文档和相关的书籍能更深入地理解每个框架的功能和使用技巧。 以上是对"struts2+...
《轻量级Java EE企业应用实战(第4版)》这本书深入探讨了Struts 2、Spring 4和Hibernate这三大框架的整合开发,旨在帮助读者掌握如何在实际项目中高效构建Java EE应用。SSH(Struts 2、Spring、Hibernate)是Java ...
### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在应用程序的不同层面发挥着重要作用。Struts2作为MVC(模型-视图-控制器)框架,负责处理请求和控制应用程序流程;Spring则是一个全面的后端框架,...
使用NetBeans 6.9.1或导入到MyEclipse中,开发者可以按照说明文件逐步搭建和运行这个示例,以理解和学习Struts2、Spring和Hibernate的整合技巧。 总之,Struts2、Spring和Hibernate的整合能够构建出高度模块化、松...
这个"ssh-base-jar"文件很可能包含了整合SSH所需的库文件,如Struts2、Spring、Hibernate的核心库,以及相关的配置文件和示例代码,帮助开发者快速启动一个新的SSH项目。在实际开发中,开发者需要根据具体需求调整...
SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...
在Java Web开发领域,Struts1、Spring与Hibernate三者的结合(通常简称为SSH)是构建复杂应用的一种常见模式。本篇文章将详细解读“struts1+spring+hibernate整合示例”的相关内容,包括配置文件的分析、各组件的...
"用maven整合struts+spring+hibernate"这个主题,就是关于如何将这三大核心框架——Struts、Spring和Hibernate——集成到一个项目中的实践教程。Struts提供了MVC(Model-View-Controller)架构,Spring是全面的后端...
### Struts2、Spring、Hibernate整合ExtJS:深入解析与实践 #### 一、概述 在现代企业级应用开发中,通常会采用多种框架和技术进行整合以满足复杂业务需求。Struts2、Spring 和 Hibernate 是 Java Web 开发领域内...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各司其职,共同构建了一个强大的企业级应用体系。这个示例项目是基于这三个框架的整合应用,用于实现一个基本的用户登录功能。 **Struts2** 是一个用于...
### Struts+Spring+Hibernate 整合教程知识点详解 #### 一、SSH整合理念与背景 **1.1 框架概述** 在构建复杂的Web应用程序时,开发人员需要面对诸多挑战,包括如何构建用户界面(UI)、业务逻辑(BL)的存放位置以及...
在`stm-ssh`和`SSHdemo`中,可能包含的是Struts2+Spring+Hibernate的整合示例。开发者通常会创建Action类来处理请求,定义Service层来封装业务逻辑,并使用Hibernate来操作数据库。Spring会管理这些对象的生命周期和...