- 浏览: 32760 次
- 性别:
- 来自: 北京
最新评论
-
resembling:
movingboy 写道
请问你发这个帖想表达什么?
初来咋 ...
oracle时间比较 -
movingboy:
请问你发这个帖想表达什么?
oracle时间比较
我这里所用的是struts-2.0.11.2,hibernate3.3.1,spring2.5.5不包版本之间可能有些包不同。
step1:首先新建一个web project项目,项目名为ssh2。
step2:首先把ssh2整合的环境搭建好再来写代码。
把所需要的JAR包复制到WebRoot/WEB-INF/lib目录下
struts2所需要的包:
struts2-core-2.0.11.jar
xwork-2.0.4.jar
ognl-2.6.11.jar
freemarker-2.3.8.jar
commons-logging-1.0.4.jar
struts2-spring-plugin-2.0.11.2.jar(这个是struts2和spring整合的包)
hibernate3.3所需要的包:
hibernate3.jar(这个是hibernate的核心包)
以及hibernate3/lib目录下所有的包复制进来,lib目录下有三个目录required,optional,bytecode其中required是hibernate必须的包,防为防止漏包,我们把另二个目录下的所有包也复制进来
Spring2.5所需要的包:
spring-framework-2.5.5\dist目录下的spring.jar这个是spring的核心包
spring-framework-2.5.5\lib\aspectj\aspectjrt.jar
spring-framework-2.5.5\lib\aspectj\aspectjweaver.jar
spring-framework-2.5.5\lib\c3p0\c3p0-0.9.1.2.jar
spring-framework-2.5.5\lib\log4j\log4j-1.2.15.jar
spring-framework-2.5.5\lib\jakarta-commons\commons-dbcp.jar
spring-framework-2.5.5\lib\jakarta-commons\commons-pool.jar
spring-framework-2.5.5\lib\jakarta-commons\commons-collections.jar
spring-framework-2.5.5\lib\jakarta-commons\commons-logging.jar
spring-framework-2.5.5\lib\jakarta-commons\commons-collections.jar
最后别忘了把mysql的数据库驱动包引进来,这里用的是MYSQL数据库
不知道写的时候有没有写漏,可能有一些包有重复,造成有冲突,解决方法,可以先把tomcat停止,然后在进到webapps/工程所有目录下的WEB-INF/lib下查看所有引入进来的JAR包,看到有复制的就删掉,只留下最新的。
step3:最后配置好的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
">
<!-- 配置Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:application-*.xml
</param-value>
</context-param>
<!-- 配置Struts2
-->
<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>
<!-- 配置Spring的监听 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 配置Spring的过滤器,解决乱码问题
-->
<filter>
<filter-name>encoding</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>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>reg.jsp</welcome-file>
</welcome-file-list>
</web-app>
src下struts.xml的最终代码如下:
<?xml version="1.0" encoding="UTF-8"
?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD
Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd
">
<struts>
<package name="default"
extends="struts-default">
<action name="reg"
class="reg">
<result
name="success">/regSuc.jsp</result>
<result
name="error">/regFail.jsp</result>
</action>
</package>
</struts>
在src下把hibernate相应的配置文件复制进来,hibernate.cfg.xml最终代码如下:
<?xml version='1.0'
encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC
"-//Hibernate/Hibernate Configuration DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd
">
<!-- Generated by MyEclipse Hibernate
Tools. -->
<hibernate-configuration>
<session-factory>
<property
name="hbm2ddl.auto">update</property>
<property
name="show_sql">true</property>
<mapping
resource="vo/User.hbm.xml"
/>
</session-factory>
</hibernate-configuration>
把hibernate缓存的配置也复制进来ehcache.xml代码如下:
<ehcache>
<diskStore
path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/>
<cache
name="sampleCache1"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="true"
/>
<cache name="sampleCache2"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
/>
-->
</ehcache>
把hibernate下的日志文件配置复制过来log4j.properties:
# For JBoss: Avoid to setup Log4J outside
$JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment
out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO,
stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d
%p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
#
Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern
to output: date priority [category] - message
把spring的配置文件复制过来applicationContext.xml
这里我们把他改名为:applicaton-beans.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
"
xmlns:aop="http://www.springframework.org/schema/aop
"
xmlns:tx="http://www.springframework.org/schema/tx
"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
">
<bean
name="userDaoImpl"
class="dao.impl.UserDaoImpl"
scope="prototype">
<property
name="sessionFactory"
ref="sf"></property>
</bean>
<bean name="reg"
class="action.UserAction" scope="prototype">
<property
name="userDaoImpl"
ref="userDaoImpl"></property>
</bean>
</beans>
再建立一个事务控制的application-transaction.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
"
xmlns:aop="http://www.springframework.org/schema/aop
"
xmlns:tx="http://www.springframework.org/schema/tx
"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
">
<bean
id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property
name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<!-- 配置数据源 -->
<bean
id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property
name="driverClassName"
value="${jdbc.driverClassName}"
/>
<property name="url" value="${jdbc.url}" />
<property
name="username" value="${jdbc.username}" />
<property name="password"
value="${jdbc.password}" />
</bean>
<!-- 配置SessionFactory -->
<bean
id="sf"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property
name="dataSource" ref="dataSource" />
<property
name="configLocation"
value="classpath:hibernate.cfg.xml"
/>
</bean>
<aop:config>
<aop:advisor
pointcut="execution(* *..PetStoreFacade.*(..))"
advice-ref="txAdvice"
/>
</aop:config>
<tx:advice id="txAdvice"
transaction-manager="txManager">
<tx:attributes>
<tx:method
name="insert*" />
<tx:method name="update*"
/>
<tx:method name="delete*" />
<tx:method
name="modify*" />
<tx:method name="*" read-only="true"
/>
</tx:attributes>
</tx:advice>
<bean
id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property
name="dataSource" ref="dataSource"
/>
</bean>
</beans>
到此,所有的配置都整合好了,下面开始写代码
step4:建立相应的jsp页面
注册页面reg.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path
= request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<base
href="<%=basePath%>">
<title>SSH2用户注册</title>
<meta http-equiv="pragma"
content="no-cache">
<meta http-equiv="cache-control"
content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description"
content="This is my page">
<!--
<link rel="stylesheet"
type="text/css" href="styles.css">
-->
</head>
<body>
<h2>用户注册</h2>
<form action="reg.action
" method="post">
用户名:<input
type="text" name="user.username
" /><br
/>
密 码:<input type="password" name="user.password
"><br />
<input
type="submit" value="注册" /><input type="reset" value="重置" />
</form>
</body>
</html>
注册成功显示页面regSuc.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path
= request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<base
href="<%=basePath%>">
<title>注册成功</title>
<meta http-equiv="pragma"
content="no-cache">
<meta http-equiv="cache-control"
content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description"
content="This is my page">
<!--
<link rel="stylesheet"
type="text/css" href="styles.css">
-->
</head>
<body>
恭喜你注册成功了 <br>
</body>
</html>
注册失败regFail.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path
= request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<base
href="<%=basePath%>">
<title>注册失败</title>
<meta http-equiv="pragma"
content="no-cache">
<meta http-equiv="cache-control"
content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description"
content="This is my page">
<!--
<link rel="stylesheet"
type="text/css" href="styles.css">
-->
</head>
<body>
对不起注册失败 <br>
</body>
</html>
在src下新建一个vo包,在vo包下新建一个User类,User.java代码如下:
package vo;
public class User {
private int id;
private String
username;
private String password;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public int getId() {
return
id;
}
public void setId(int id) {
this.id =
id;
}
}
在vo包下新建hibernate的映射文件User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
">
<hibernate-mapping
package="vo">
<class name="User" table="t_user">
<id
name="id">
<generator
class="native"></generator>
</id>
<property
name="username" column="username" not-null="true"/>
<property
name="password" column="password"
not-null="true"/>
</class>
</hibernate-mapping>
step5:编写struts2的action类,UserAction.java代码如下:
package action;
import vo.User;
import
com.opensymphony.xwork2.ActionSupport;
import dao.UserDao;
public class UserAction extends ActionSupport {
private static final long serialVersionUID =
-8534550171421612227L;
private User user;
private UserDao
userDaoImpl;
public User getUser() {
return user;
}
public void
setUser(User user) {
this.user = user;
}
public static long
getSerialVersionUID() {
return
serialVersionUID;
}
@Override
public String execute() throws
Exception {
boolean flag = false;
flag =
userDaoImpl.insertUser(user);
if(flag){
return
SUCCESS;
}else{
return ERROR;
}
}
public UserDao
getUserDaoImpl() {
return userDaoImpl;
}
public void
setUserDaoImpl(UserDao userDaoImpl) {
this.userDaoImpl =
userDaoImpl;
}
}
在src下新建一个dao包,在dao下新建一个UserDao.java
package dao;
import vo.User;
public interface UserDao {
public boolean insertUser(User
user);
}
在src/dao下新建一个impl包在下面新建一个UserDao的实现类UserDaoImpl.java
package dao.impl;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import vo.User;
import dao.UserDao;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public boolean insertUser(User user) {
boolean b =
false;
this.getHibernateTemplate().save(user);
b = true;
return
b;
}
}
现在全部代码也写好了,下面看一下整个工程的目录结构:
所有JAR包如下图所示:
下面我们部署好测试一下,测试前得先把数据库建好,数据库名字和jdbc.properties里的jdbc.url里的数据库名字一样jdbc.url=jdbc:mysql://localhost:3306/ssh2,所以这里我们新建一个ssh2的数据库,
启动服务器进行测试:
我们进入到MYSQL,里面也有我们插入的数据。
到此全部整合成功了
相关推荐
SSH2整合指的是在Java开发中将Spring、Struts2和Hibernate三个开源框架集成在一起,以构建高效、灵活的企业级Web应用程序。在这个过程中,Spring提供依赖注入和事务管理,Struts2负责视图和控制层,而Hibernate则...
SSH2整合框架是Java开发中常用的一种高效、稳定且可扩展的Web应用程序开发架构,它由Struts2、Spring和Hibernate三个开源框架组合而成。这三个框架各司其职,共同构建了一个强大的MVC(Model-View-Controller)设计...
SSH2整合全注解实例是基于Struts2、Spring和Hibernate这三个开源框架的集成应用,它们共同构建了一个强大的Web应用程序开发平台。SSH2是Java Web开发中的经典组合,提供了模型-视图-控制器(MVC)的设计模式,使得...
SSH2整合指的是Spring、Struts2和Hibernate这三个开源框架的集成,这在Java Web开发中是一种常见的技术栈。本文将详细介绍SSH2整合的最新版本,包括Spring 3.2、Hibernate 4.2和Struts2.3.4的特性以及它们如何协同...
SSH2整合源码详解 SSH2是Spring、Struts2和Hibernate3三个开源框架的集成,通常用于构建大型的企业级Web应用。这三个框架各司其职,Spring负责管理应用程序的bean,提供AOP(面向切面编程)和IoC(控制反转);...
SSH2整合指的是在Java开发中,使用Spring、Struts2和Hibernate这三大开源框架进行集成,构建一个完整的Web应用程序。这个“ssh2整合好的架子”应该是提供了一个预先配置好的项目结构,开发者可以直接在这个基础上...
SSH2整合是Java开发中常见的一个技术框架,它是由Struts2、Spring和Hibernate三个开源框架组成的集成解决方案。这三个框架分别负责MVC模式中的表现层、业务层和数据持久层,通过合理的组合,可以构建出高效、灵活的...
SSH2整合实现CRUD是指在Java Web开发中,将Struts2、Spring和Hibernate这三个开源框架集成起来,用于实现创建(Create)、读取(Read)、更新(Update)和删除(Delete)等基本数据操作。SSH2是Struts2、Spring和...
在Java开发中,SSH2整合通常指的是使用JSch库来实现SSH2的功能,例如远程文件操作、SFTP(Secure File Transfer Protocol)传输、端口转发等。JSch是一个纯Java实现的SSH2库,它允许Java应用程序与支持SSH2的服务器...
SSH2整合指的是在Java开发中将Struts2、Spring和Hibernate三个开源框架集成在一起,用于构建高效、可扩展的企业级Web应用。这个"SSH2整合demo"是一个针对初学者的示例项目,可以帮助他们理解如何将这三个框架无缝...
SSH2整合jfreechart是Java开发中的一个常见实践,它涉及到三个主要的开源框架:Struts2、Spring2.5和Hibernate3.2,以及一个用于数据可视化的库——JFreeChart。这些技术的整合旨在提供一个高效、灵活且可扩展的企业...
在提供的压缩包中,`ssh1与ssh2整合说明.doc`很可能是关于整合步骤和配置细节的文档,而`ssh`和`ssh1`可能是项目的源代码或者示例工程,包含了具体实现的细节。 学习和理解SSH1和SSH2的整合,不仅可以提升对MVC框架...
在IT行业中,SSH2整合通常指的是将Spring、Struts2和Hibernate这三大开源框架集成到一个项目中,以构建高效、稳定且安全的企业级Web应用。这个过程涉及到多个层次的技术融合,包括前端展示、业务逻辑处理和数据访问...
Java SSH2 整合主要指的是在Java应用中集成Secure Shell (SSH) v2协议,用于实现远程系统管理、文件传输等功能。SSH2提供了一种安全的网络通信方式,通过加密技术确保数据传输的安全性。在Java中,通常使用JSch库来...
SSH2整合指的是将Struts2、Spring和Hibernate这三个开源框架集成在一起,以便构建高效、松耦合的企业级Java Web应用程序。SSH2整合是Java开发中常见的技术栈,它提供了MVC(模型-视图-控制器)架构、依赖注入以及...
SSH2整合框架指的是在Java开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以构建高效、稳定的企业级应用系统。这个框架组合提供了模型-视图-控制器(MVC)的设计模式,数据库操作,以及业务逻辑管理...
**SSH2整合开发详解** SSH(Secure SHell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他网络服务。SSH2是SSH协议的第二个主要版本,提供了更强大的加密和认证机制,以及对多种操作系统的广泛...