本文描述的是框架SSH集成的示例,由于在这个过程中有一些小的细节容易被遗忘,特别撰写了一篇小的博文来记录这个过程,希望对自己以及后来者能够起到积极意义。

本文中使用的框架和版本号为:

struts-2.3.1.2、hibernate-3.6.10、spring-3.1.1

其下载地址分别为:

http://struts.apache.org/download.cgi#struts2312

http://sourceforge.net/projects/hibernate/files/hibernate3/3.6.10.Final/

http://www.springsource.org/download/community?project=Spring%2520Framework&version=3.1.1.RELEASE

分别将其解压,需要注意的是本例中hibernate3还需要的是log4j,spring还需要commons-loging、commons-dbcp和commons-pool,在这里就不再赘述出其下载地址了。

需要删除的重复包为:asm-commons-3.3.jar和javassist-3.11.0.GA.jar

需要使用的JAR包截图:


 接下来在jee中新建一个Dynamic Web Project,选择好运行环境:


 相关文件组织如下:


 源代码列举如下:

UserAction.java

  1. package com.ssh.action;import com.opensymphony.xwork2.ActionSupport;
  2. import com.ssh.pojo.User;
  3. import com.ssh.service.UserService;
  4. public class UserAction extends ActionSupport {
  5. private static final long serialVersionUID = 1L;
  6. private User user;
  7. private UserService service;
  8. public UserService getService() {
  9. return service;
  10. }
  11. public void setService(UserService service) {
  12. this.service = service;
  13. }
  14. public User getUser() {
  15. return user;
  16. }
  17. public void setUser(User user) {
  18. this.user = user;
  19. }
  20. public String execute(){
  21. if (service.save(user)!=null) {
  22. return SUCCESS;
  23. }else {
  24. return ERROR;
  25. }
  26. }
  27. }

User.java

  1. package com.ssh.pojo;
  2. import javax.persistence.Column;
  3. import javax.persistence.Entity;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.Id;
  6. import javax.persistence.Table;
  7. @Entity
  8. @Table(name="user")
  9. public class User {
  10. private Integer id;
  11. private String username;
  12. private String password;
  13. @Id
  14. @GeneratedValue
  15. @Column(name="hr_id")
  16. public Integer getId() {
  17. return id;
  18. }
  19. public void setId(Integer id) {
  20. this.id = id;
  21. }
  22. public String getUsername() {
  23. return username;
  24. }
  25. public void setUsername(String username) {
  26. this.username = username;
  27. }
  28. public String getPassword() {
  29. return password;
  30. }
  31. public void setPassword(String password) {
  32. this.password = password;
  33. }
  34. }

UserService.java

  1. package com.ssh.service;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import com.ssh.pojo.User;
  5. public class UserService {
  6. private SessionFactory factory = null;
  7. public SessionFactory getFactory() {
  8. return factory;
  9. }
  10. public void setFactory(SessionFactory factory) {
  11. this.factory = factory;
  12. }
  13. public User save(User user){
  14. Session session = factory.getCurrentSession();
  15. session.beginTransaction();
  16. session.save(user);
  17. session.getTransaction().commit();
  18. return user;
  19. }
  20. }

log4j.properties

  1. ### direct log messages to stdout ###
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.Target=System.out
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  5. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  6. ### direct messages to file hibernate.log ###
  7. #log4j.appender.file=org.apache.log4j.FileAppender
  8. #log4j.appender.file.File=hibernate.log
  9. #log4j.appender.file.layout=org.apache.log4j.PatternLayout
  10. #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  11. ### set log levels - for more verbose logging change 'info' to 'debug' ###
  12. log4j.rootLogger=warn, stdout
  13. #log4j.logger.org.hibernate=info
  14. #log4j.logger.org.hibernate=debug
  15. ### log HQL query parser activity
  16. #log4j.logger.org.hibernate.hql.ast.AST=debug
  17. ### log just the SQL
  18. #log4j.logger.org.hibernate.SQL=debug
  19. ### log JDBC bind parameters ###
  20. #log4j.logger.org.hibernate.type=info
  21. #log4j.logger.org.hibernate.type=debug
  22. ### log schema export/update ###
  23. log4j.logger.org.hibernate.tool.hbm2ddl=debug
  24. ### log HQL parse trees
  25. #log4j.logger.org.hibernate.hql=debug
  26. ### log cache activity ###
  27. #log4j.logger.org.hibernate.cache=debug
  28. ### log transaction activity
  29. #log4j.logger.org.hibernate.transaction=debug
  30. ### log JDBC resource acquisition
  31. #log4j.logger.org.hibernate.jdbc=debug
  32. ### enable the following line if you want to track down connection ###
  33. ### leakages when using DriverManagerConnectionProvider ###
  34. #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

struts.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <constant name="struts.devMode" value="true" />
  7. <package name="ssh" extends="struts-default">
  8. <action name="loginApp" class="userAction">
  9. <result name="error">/WEB-INF/content/error.jsp</result>
  10. <result name="success">/WEB-INF/content/success.jsp</result>
  11. </action>
  12. <action name="*">
  13. <result>/WEB-INF/content/{1}.jsp</result>
  14. </action>
  15. </package>
  16. </struts>

error.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>出错页面</title>
  8. </head>
  9. <body>
  10. 对不起,出错了
  11. </body>
  12. </html>

register.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="s" uri="/struts-tags" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>注册页面</title>
  9. </head>
  10. <body>
  11. 欢迎注册,请在这里输入必要的注册信息:
  12. <s:form action="loginApp" method="post">
  13. <s:textfield name="user.username" label="用户名"></s:textfield>
  14. <s:password name="user.password" label="密码"></s:password>
  15. <s:submit label="提交"></s:submit>
  16. </s:form>
  17. </body>
  18. </html>

success.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="s" uri="/struts-tags" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>成功页面</title>
  9. </head>
  10. <body>
  11. 成功了
  12. </body>
  13. </html>

applicationContext.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
  6. <bean id="dataSource" destroy-method="close"
  7. class="org.apache.commons.dbcp.BasicDataSource">
  8. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  9. <property name="url" value="jdbc:mysql://localhost:9906/ssh" />
  10. <property name="username" value="root" />
  11. <property name="password" value="root" />
  12. </bean>
  13. <bean id="sessionFactory"
  14. class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  15. <property name="dataSource" ref="dataSource" />
  16. <property name="annotatedClasses">
  17. <list>
  18. <value>com.ssh.pojo.User</value>
  19. </list>
  20. </property>
  21. <property name="hibernateProperties">
  22. <value>
  23. hibernate.dialect=org.hibernate.dialect.MySQLDialect
  24. hibernate.show_sql=true
  25. hibernate.hbm2ddl.auto=update
  26. hibernate.current_session_context_class=thread
  27. </value>
  28. </property>
  29. </bean>
  30. <bean id="userService" class="com.ssh.service.UserService">
  31. <property name="factory" ref="sessionFactory"></property>
  32. </bean>
  33. <bean id="user" class="com.ssh.pojo.User"></bean>
  34. <bean id="userAction" class="com.ssh.action.UserAction">
  35. <property name="user" ref="user"></property>
  36. <property name="service" ref="userService"></property>
  37. </bean>
  38. </beans>

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. id="WebApp_ID" version="3.0">
  6. <display-name>ssh03_demo</display-name>
  7. <listener>
  8. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  9. </listener>
  10. <filter>
  11. <filter-name>struts2</filter-name>
  12. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>struts2</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>
  18. <welcome-file-list>
  19. <welcome-file>index.html</welcome-file>
  20. <welcome-file>index.jsp</welcome-file>
  21. </welcome-file-list>
  22. </web-app>

然后在Tomcat7上部署该项目即可,在浏览器中输入地址:http://localhost:8080/ssh_demo/register即可进入下面的页面:


 至此,SSH框架整合完成。

相关源码和jar包放在附件中。

[Java] SSH框架笔记_框架整合示例(一)的更多相关文章

  1. [Java] SSH框架笔记_框架分析+环境搭建+实例源码下载

    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

  2. unity热更新AssetBundle框架设计_框架篇

    目录 第1 章 : AssetBundle框架整体设计 课时1:实战项目开发AB技术问题分析 10:53 课时2:实战项目开发AB技术解决方案 10:24 课时3:AB框架整体设计方案详解 09:45 ...

  3. Python学习笔记_一个Tkinter示例,使用FileDialog

    为了使用Python进行数据分析,编写一个图形界面,选择一个Excel文件(或CSV),然后进行后续处理. 一.本示例涵盖如下知识点: 1.FileDialog的使用 2.退出程序 3.消息提示框的示 ...

  4. [Java] SSH框架笔记_SSH三大框架的工作原理及流程

    Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  5. Spring_day04--课程安排_回顾SSH框架知识点_SSH框架整合思想

    Spring_day04 上节内容回顾 今天内容介绍 回顾SSH框架知识点 Hibernate框架 Struts2框架 Spring框架 SSH框架整合思想 整合struts2和spring框架 Sp ...

  6. java SSH框架详解(面试和学习都是最好的收藏资料)

    Java—SSH(MVC)1. 谈谈你mvc的理解MVC是Model—View—Controler的简称.即模型—视图—控制器.MVC是一种设计模式,它强制性的把应用程序的输入.处理和输出分开.MVC ...

  7. JAVA SSH 框架介绍

    SSH 为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架. Struts Struts是一个基于Sun J2EE平台的MVC框架, ...

  8. 【转】JAVA SSH 框架介绍

    转自:http://www.admin10000.com/document/150.html SSH 为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA W ...

  9. JAVA SSH 框架介绍

    SSH 为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架. Struts Struts是一个基于Sun J2EE平台的MVC框架, ...

随机推荐

  1. MecAnim

    [MecAnim] MecAnim是Unity 4.0推出的新的动画系统,新系统使用Animator组件来控制动画,老系统使用Animation组件来控制动画.此篇讲述MecAnim系统. What ...

  2. Database事件研究

    1.Database.ObjectAppended.ObjectModified.ObjectErased事件 此事件如果不是Transaction提交而触发的,那么可以在事件内部使用Transact ...

  3. jsp 是什么 ,jsp 隐式对象

    google 搜索 java server page http://www.oracle.com/technetwork/java/javaee/jsp/index.html http://docs. ...

  4. 转载 在 Linux 虚拟机中手动安装或升级 VMware Tools

    http://pubs.vmware.com/workstation-12/index.jsp?lang=zh_CN&topic=/com.vmware.ws.using.doc/GUID-0 ...

  5. c#学习之旅------01

    一.交换两个数的值 //交换两个数的值 #region 方法一 , num2 = ;//待交换的两个数值 int temp;//临时变量 temp = num1; num1 = num2; num2 ...

  6. sql reiserror 输出错误

    其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable }                    { ,severity ,state }    ...

  7. Android学习过程中遇到的问题

    1.使用在Activity布局之上重叠显示操作栏,第一次使用出现错误信息. 错误信息如下:java.lang.RuntimeException:Ubable to start activity Com ...

  8. PaaS平台资源

    http://www.vagrantup.com/ http://www.docker.com/

  9. thinkphp 3+ 观后详解 (1)

    最近面试了一些公司,发现自己的对于架构能力的不足,于是决定开始从最基本的代码做起.先看看大牛们怎么架构整个框架的.鉴于国外的框架比较难懂,于是就选择了国内比较流行的thinkphp来进行研究. 下面写 ...

  10. MySQL Profile

    1:查看MySQL当前版本是否支持profile mysql> SELECT @@HAVE_PROFILING; +------------------+ | @@HAVE_PROFILING ...