文档章节

spring4+hibernate4+struts2整合实例

liuhuics10
 liuhuics10
发布于 2015/12/05 20:56
字数 1090
阅读 681
收藏 14

项目的整体结构如下:

项目用到的所有jar包如下:


项目所有的类和文件如下:

1.src/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:context ="http://www.springframework.org/schema/context"
    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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop  
          http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx  
     http://www.springframework.org/schema/tx/spring-tx.xsd " >
       
    <context:annotation-config ></context:annotation-config >
    <tx:annotation-driven transaction-manager ="transactionManager" />
   
     
      <bean id = "userService" class= "service.UserServiceImpl">
      </bean >
     
      <bean id = "userDao" class= "dao.UserDaoImpl">
      </bean >
     
      <bean id = "userAction" class= "action.UserAction">
      </bean >
     
      <bean id = "dataSource" class= "org.apache.commons.dbcp.BasicDataSource" >
          <property name = "driverClassName" value= "com.mysql.jdbc.Driver" />
          <property name = "url" value= "jdbc:mysql://localhost:3306/spring" />
          <property name = "username" value= "root"/>
          <property name = "password" value= "*******"/>
      </bean >
      <bean id = "transactionManager" 
         class = "org.springframework.orm.hibernate4.HibernateTransactionManager" > 
      <property name = "sessionFactory" ref= "sessionFactory" />
      </bean >
     
      <bean id = "sessionFactory" class= "org.springframework.orm.hibernate4.LocalSessionFactoryBean" > 
        <property name = "dataSource" ref= "dataSource" /> 
        <property name = "hibernateProperties">  
            <props > 
                <prop key= "hibernate.dialect" >org.hibernate.dialect.MySQLDialect </prop > 
                <prop key = "hibernate.show_sql"> true</ prop>
                <prop key = "hibernate.hbm2ddl.auto"> update</ prop>  
                <prop key = "hibernate.format_sql"> true</ prop>  
            </props > 
        </property >
       
        <property name = "packagesToScan">  
            <list > 
                <value >entity </value > 
            </list > 
        </property >   
    </bean > 
         <!-- 配置HibernateTemplate Bean -->
    <bean id = "hibernateTemplate" class= "org.springframework.orm.hibernate4.HibernateTemplate" >
      <property name = "sessionFactory" ref= "sessionFactory" ></property >
    </bean >
     
</ beans>

2.src/log4j.properites:

### direct log messages to stdout ###
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target= System.out
log4j.appender.stdout.layout= org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{ABSOLUTE} %5p %c {1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger= warn, stdout

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl= debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

3.src/struts.xml:

<? xml version= "1.0" encoding = "UTF-8" ?>
<! DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
      "http://struts.apache.org/dtds/struts-2.3.dtd" >
 < struts >
     <package name = "reg" extends = "struts-default">
           <action name = "user" class = "action.UserAction">
               <result name = "success" >/ reg/regSuccess.jsp </ result>
               <result name = "input" >/ reg/regFail.jsp </ result>
           </action >
         </package >
 </ struts >

4.WebContent/reg/reg.jsp:

<%@ page language = "java" contentType= "text/html; charset=utf-8"
    pageEncoding= "utf-8"%>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http-equiv= "Content-Type" content = "text/html; charset=utf-8">
< title> Insert title here</ title>
</ head>
< body>
      <form action = "user.action" method= "post">< br>
            uname: <input type = "text" name= "uname"/>< br>
            pwd:< input type= "password" name = "pwd"/>< br>
            repwd< input type= "password" name = "repwd"/>< br>
           提交: <input type = "submit" value= "提交 "/>
      </form >
</ body>
</ html>

5.WebContent/reg/regSuccess.jsp:

<%@ page language = "java" contentType= "text/html; charset=utf-8"
    pageEncoding= "utf-8"%>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http-equiv= "Content-Type" content = "text/html; charset=utf-8">
< title> Insert title here</ title>
</ head>
< body>
      <h1 >注册成功 </h1 >
</ body>
</ html>

6.WebContent/reg/regFail.jsp:

<%@ page language = "java" contentType= "text/html; charset=utf-8"
    pageEncoding= "utf-8"%>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http-equiv= "Content-Type" content = "text/html; charset=utf-8">
< title> Insert title here</ title>
</ head>
< body>
      <h1 >注册失败:用户名重复 </h1 >
</ body>
</ html>

7.WEB-INF/web.xml:

<? xml version= "1.0" encoding= "UTF-8" ?>
< web-app xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns= "http://java.sun.com/xml/ns/javaee" xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id= "WebApp_ID" version = "3.0">
  < display-name >SSHJunior </display-name >
  < welcome-file-list >
    <welcome-file >index.html </welcome-file >
    <welcome-file >index.htm </welcome-file >
    <welcome-file >index.jsp </welcome-file >
    <welcome-file >default.html </welcome-file >
    <welcome-file >default.htm </welcome-file >
    <welcome-file >default.jsp </welcome-file >
  </ welcome-file-list >
  < filter>
    <filter-name >struts2 </filter-name >
    < filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class >
  </ filter>
  < filter-mapping >
    <filter-name >struts2 </filter-name >
    <url-pattern >/* </url-pattern >
  </ filter-mapping >
 
  < listener>
        < listener-class> org.springframework.web.context.ContextLoaderListener </listener-class >
    </listener >
    <context-param >
      <param-name >contextConfigLocation </param-name >
            <!-- 默认找/WEB-INF/applicationContext.xml -->
      <param-value >classpath:beans.xml </param-value >
    </context-param >
</ web-app>

8.entity.User.jsp:

package entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User {
     private int id;
     private String uname;
     private String pwd;
     @Id
     @GeneratedValue
     public int getId() {
          return id;
     }
     public void setId(int id) {
          this.id = id;
     }
     public String getUname() {
          return uname;
     }
     public void setUname(String uname) {
          this.uname = uname;
     }
     public String getPwd() {
          return pwd;
     }
     public void setPwd(String pwd) {
          this.pwd = pwd;
     }
    
}

9.service.UserService.java:

package service;

import entity.User;

public interface UserService {

      boolean exists(User user);

      void add(User user);

}

10.service.UserServiceImpl.java:

package service;

import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional ;

import dao.UserDao;
import entity.User;

public class UserServiceImpl implements UserService {
     
      private UserDao userDao;
     
     

      public UserDao getUserDao() {
            return userDao;
     }
     
      @Resource
      public void setUserDao(UserDao userDao) {
            this. userDao = userDao;
     }

      /* (non-Javadoc)
      * @see service.UserService#exists(entiey.User)
      */
      @Override
      public boolean exists(User user) {
            return userDao.checkUserExistsByUname( user.getUname());
        
     }

      /* (non-Javadoc)
      * @see service.UserService#add(entiey.User)
      */
      @Override
      @Transactional
      public void add(User user) {
            userDao.save( user); 
     }
}

11.dao.UserDao.java:

package dao;

import entity.User;

public interface UserDao {

      boolean checkUserExistsByUname(String uname);

      void save(User user);

}

12.dao.UserDaoImpl.java:

package dao;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.orm.hibernate4.HibernateTemplate;
import entity.User;
public class UserDaoImpl implements UserDao {
     private HibernateTemplate hibernateTemplate;
    
    
     public HibernateTemplate getHibernateTemplate() {
          return hibernateTemplate;
     }
    
     @Resource
     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
          this.hibernateTemplate = hibernateTemplate;
     }
    
    
     /* (non-Javadoc)
     * @see dao.UserDao#checkUserExistsByUname(java.lang.String)
     */
     @Override
     public boolean checkUserExistsByUname(String uname){
          //String sql = "select count(*) from User where uname = '"+uname+"'";
          String sql = "from User where uname = '"+uname+"'";
          List list = (List) hibernateTemplate.find(sql);
          if(list!=null&&list.size()>0){
               return true;
          }
         
         return false;
     }
    
     /* (non-Javadoc)
     * @see dao.UserDao#save(entiey.User)
     */
     @Override
     public void save(User user){
          hibernateTemplate.save(user);
     }
}

13.action.UserAction.java:

package action;


import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;

import com.opensymphony.xwork2.ActionSupport;

import entity.User;
import service.UserService;
@Scope( "prototype")
public class UserAction extends ActionSupport {
     
      private String uname;
      private String pwd;
      private String repwd;
      private UserService userService;
     

      public String getUname() {
            return uname;
     }

      public void setUname(String uname) {
            this. uname = uname;
     }

      public String getPwd() {
            return pwd;
     }

      public void setPwd(String pwd) {
            this. pwd = pwd;
     }


      public String getRepwd() {
            return repwd;
     }

      public void setRepwd(String repwd) {
            this. repwd = repwd;
     }

      public UserService getUserService() {
            return userService;
     }
     
      @Resource
      public void setUserService(UserService userService) {
            this. userService = userService;
     }

      @Override
      public String execute() throws Exception {
           User user = new User();
            user.setUname( uname);
            user.setPwd( pwd);
            if( userService.exists( user)){
                 return INPUT;
           }
            userService.add( user);
            return SUCCESS;
     }
}


© 著作权归作者所有

共有 人打赏支持
liuhuics10
粉丝 4
博文 97
码字总数 39010
作品 0
烟台
python_day6_对象

6.1: 类与对象实例 python是一门面向对象编程语言,其中编程方式分为三种范式: 1、面向过程编程 2、函数式编程 分为两种:数学层次的编程与python函数式编程 3、面向对象编程 对象是由类产...

812374156
2017/12/22
0
0
solr

搜索引擎/服务 solr 搜索引擎或者搜索框架,其实总体分为两部分, 第一步,分析整理数据建立起索引结构的存储; 第二部,从存储的索引数据中查找 数据,返回给客户端; solr 的使用一般应该有...

LANTIANFEIYING
2016/10/20
0
0
spring springmvc mybatis maven 项目整合示例-导航页面

spring原理 实践解析-简单的helloworld spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包 spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途...

noteless
06/29
0
0
snakerflow/snaker-springmvc

Introduction Snaker-SpringMVC项目主要是基于springMVC、spring3、hibernate3、snaker框架整合的一个最基本的流程管理模块,方便大家轻松地完成流程引擎的整合 ###整合步骤 ####1).依赖包整...

snakerflow
2014/11/30
0
0
设计模式学习笔记-工厂模式

工厂模式 设计模式学习笔记-工厂模式 交流或更多内容请关注我的公众号:nezha_blog 我的技术博客:https://nezha.github.io 微信公众号 介绍简单工厂模式之前先通过一个披萨项目的例子来引出...

哪吒小子
2017/12/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
20分钟前
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
22分钟前
0
0
Nginix开启SSL支持HTTPS访问(自签名方法)

Nginix开启SSL支持HTTPS访问(自签名方法) 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器...

openthings
38分钟前
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部