struts2+spring2.5+hibernate3.2+MySQL5完整整合

struts2+spring2.5+hibernate3.2+MySQL5.1

学习尚学堂教程,根据自己的理解,通过一个简单的用户登陆检测功能的实现来完成三种框架的搭建,所有文件和包全部详细列出,以供参考和查询,具体流程图如下(由于新浪博文限制发布字数,所以分几篇进行发布):

struts2+spring2.5+hibernate3.2+MySQL5完整整合_第1张图片
项目总体结构如下:
struts2+spring2.5+hibernate3.2+MySQL5完整整合_第2张图片

(其中text.java用为测试,此类可无)


一、使用框架版本及所必须导入的包:

struts- 2.0.14

spring-framework-2.5

hibernate-3.2

MySQL5.1驱动包

总体架构如下:

导入的所有包如下:

struts2+spring2.5+hibernate3.2+MySQL5完整整合_第3张图片

以下为分别对应框架包介绍

1.struts-2.0.14包介绍:
struts2+spring2.5+hibernate3.2+MySQL5完整整合_第4张图片


struts2-spring-plugin-2.0.14.jar:用于与spring框架的整合

freemarker-2.3.8.jar:支持freemarker

commons-logging-1.0.4.jar::Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的java.util.logging,如果也找不到就用Simple Logger。

ognl-2.6.11.jar:对Object-Graph Navigation Language的支持

struts2-core-2.0.14.jar和xwork-2.0.7.jar:为struts2核心包


2.spring-framework-2.5包介绍:
struts2+spring2.5+hibernate3.2+MySQL5完整整合_第5张图片


spring.jar:spring核心包

log4j-1.2.14.jar:日志包

aspectjrt.jar和aspectjweaver.jar:支持AspectJ表达式,集成AspectJ AspectJ LTW织入器


3.hibernate-3.2包介绍:
struts2+spring2.5+hibernate3.2+MySQL5完整整合_第6张图片


hibernate.jar :hibernate核心包。
antlr.jar :Hibernate使用ANTLR来产生查询分析器
cglib.jar :CGLIB库,Hibernate用它来实现PO字节码的动态生成

asm.jar :ASM字节码库,cglib.jar包依赖的包
asm-attrs.jar :ASM字节码库,cglib.jar包依赖的包
commons-collections.jar :Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。

ehcache.jar :Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。
jta.jar :JTA规范,当Hibernate使用JTA的时候需要。
dom4j.jar :dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。

二、所有文件

各个页面和配置文件详细列出:

JSP页面:

1.新建login.jsp,关键代码如下:

       

    "login" method="post">

            "用户名" name="username"/>

            "  " name="password"/>

            "登陆"/>

   

   

 

2. 新建success.jsp,关键代码如下:

    "username"/>

    "password"/>

 

JAVA类:

1. Users.java

package com.ssh.text;

 

public class Users {

       private String id;

       private String password;

       private String name;

       private int age;

    public String getId() {

       return id;

    }

    public void setId(String id) {

       this.id = id;

    }

    public String getPassword() {

       return password;

    }

    public void setPassword(String password) {

       this.password = password;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public int getAge() {

       return age;

    }

    public void setAge(int age) {

       this.age = age;

    }

}

 

2. LoginAciton.java

 

package com.ssh.text;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAciton extends ActionSupport {

    private String username;

    private String password;

    private UsersDAO dao;

    public UsersDAO getDao() {

       return dao;

    }

    public void setDao(UsersDAO dao) {

       this.dao = dao;

    }

    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 String login()throws Exception{

       Users user=this.dao.selectManager(this.username,this.password);

       if(user!=null){

           return this.SUCCESS;

       }else{

           return this.INPUT;

       }

 

    }

}

 

3. LoginAciton.java

package com.ssh.text;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class UsersDAO extends HibernateDaoSupport {

   

    public Users selectManager(String username,String password){

       Users user=(Users) this.getHibernateTemplate().get(Users.class, username);

       if(user!=null && user.getPassword().equals(password)){

           return user;

       }else{

           return null;

       }

    }

}

 

配置文件:

1. web.xml

"1.0" encoding="UTF-8"?>

"WebApp_9" 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">

 

    Struts Blank

   

   

       contextConfigLocation

       classpath:applicationContext-*.xml

   

   

   

    org.springframework.web.context.ContextLoaderListener

   

   

   

   

       encodingFilter

       org.springframework.web.filter.CharacterEncodingFilter

      

           encoding

           UTF-8

      

   

   

   

   

       hibernateFilter

        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

   

   

   

   

        struts2

        org.apache.struts2.dispatcher.FilterDispatcher

   

   

   

   

       encodingFilter

       /*

   

   

       hibernateFilter

       /*

   

   

        struts2

        /*

   

   

   

        login.jsp

   

 

2. log4j.properties

### 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. struts.xml

 

"1.0" encoding="UTF-8" ?>

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

    "users" extends="struts-default">

   

    "login" class="loginAction"  method="login">

        "success">/success.jsp

        "input">/login.jsp

   

   

4.applicationContext-common.xml

"1.0" encoding="UTF-8"?>

 

"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.0.xsd

           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

   

   

    "sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

       "configLocation">

           classpath:hibernate.cfg.xml

         

     

   

   

    "transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

       "sessionFactory">

           "sessionFactory"/>

         

   

   

   

    "txAdvice" transaction-manager="transactionManager">

      

           "add*" propagation="REQUIRED"/>

           "del*" propagation="REQUIRED"/>

           "modify*" propagation="REQUIRED"/>

           "*" read-only="true"/>

      

   

   

   

   

       "allManagerMethod" expression_r_r_r="execution(* com.bjsxt.usermgr.manager.*.*(..))"/>

       "allManagerMethod" advice-ref="txAdvice"/>

   

 

5.applicationContext-actions.xml

 

"1.0" encoding="UTF-8"?>

 

"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.0.xsd

           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

   

    "users" class="com.ssh.text.UsersDAO">

       "sessionFactory" ref="sessionFactory"/>

   

   

   

    "loginAction" class="com.ssh.text.LoginAciton" scope="prototype">

       "dao">

           "users"/>

      

   

 

6.hibernate.cfg.xml

'1.0' encoding='utf-8'?>

        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

   

      

       "connection.driver_class">org.gjt.mm.mysql.Driver

       "connection.url">

       jdbc:mysql://127.0.0.1:3306/mail?useUnicode=true&characterEncoding=UTF-8

      

       "connection.username">root

       "connection.password">123456

      

      

       "dialect">

       org.hibernate.dialect.MySQLDialect

      

      

      

       "show_sql">true

       "format_sql">true

       "use_sql_comments">true

       "hibernate.hbm2ddl.auto">update

      

      

       "com/ssh/text/Users.hbm.xml"/>

   

 

7.Users.hbm.xml

"1.0"?>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

 

    "com.ssh.text.Users" table="users">

       "id" column="id" type="string"/>

       "password" column="password" type="string"/>

       "name" column="name" type="string"/>

       "age" column="age" type="int"/>

   

测试页面

 

登陆页面:

 struts2+spring2.5+hibernate3.2+MySQL5完整整合_第7张图片

登陆成功:

struts2+spring2.5+hibernate3.2+MySQL5完整整合_第8张图片

 

你可能感兴趣的:(Web开发)