03-Spring+Hibernate+Struts2的整合环境配置

说明:代码颜色为 #ff6600

一、软件要求:

Hibernate: Hibernate 3.6.6 Final   下载地址:http://sourceforge.net/projects/hibernate/files/hibernate3/

commons-pool-1.5.6-bin.zip          下载地址:http://commons.apache.org/pool/download_pool.cgi

commons-dbcp-1.4-bin.zip            下载地址:http://commons.apache.org/dbcp/download_dbcp.cgi

二、环境配置:

 此篇文章接上两篇讲述内容继续讲述,实现Spring+Hibernate+Struts2整合使用,而关于Hibernate会在其它文章单独讲述。

     1、解压文件:hibernate-distribution-3.6.6.Final.dist.zip, commons-dbcp-1.4-bin.zip,commons-pool-1.5.6-bin.zip

      2、打开解压的文件夹,将下列jar文件放入/WEB-INF/lib目录下

                        hibernate3.jar       

                         antlr-2.7.6.jar , commons-collections-3.1.jar,  dom4j-1.6.1.jar,    javassist-3.12.0.GA.jar  ,  jta-1.1.jar, slf4j-api-1.6.1.jar,                

                          hibernate-jpa-2.0-api-1.0.1.Final.jar            

                         commons-dbcp-1.4.jar,commons-pool-1.5.6.jar

三、改进第二篇文件,以Spring+Struts2+Hibernate实现用户登录验证功能。

        1、文件介绍

        failure.jsp页面:若登录的用户名和密码不正确,所跳转到的错误页面。

       com.test.dao.impl.UserDaoImpl.java类文件:处理用户登录提交的信息,本文主要的功能是查询用户登录的信息是否存在。

       com.test.entity.User类文件:一个与user数据表对应的文件。

       src/com/test/entity/User.hbm.xml文件:与com.test.entity.User同一个目录下。用于将com.test.entity.User与user数据表相映射。

        2、基础工作

        要用到数据表,就需要先建立数据库服务器,若已经安装好了MySql,先建立一个userdb数据库,在该数据库中建立一个user表。具体的设置请浏览一篇名为:《****》的文章。

该表中的字段是id,name,password。

        3、步骤

           a.  新建一个com.test.entity.User类。内容如下:

package com.test.entity;
/**
 * 對應userdb數據庫的user表字段
 * @author testlogin123
 * @version 1.0.0
 * date 2011/07/27
 */
public class User {
    private int id;
    private String name;
    private String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
        
}

           b.在src/com/test/entity/目录下,新建User.hbm.xml文件,内容如下:

          <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test.entity">  
    <class name="User" table="user">
        <id name="id" column="id">
          <generator class="native"/>
        </id>
        <property name="name" column="name"/>
        <property name="password" column="password"/>
    </class>
</hibernate-mapping>

            c.新建com.test.dao.impl.UserDaoImpl类,内容如下:

package com.test.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.test.entity.User;
public class UserDaoImpl extends HibernateDaoSupport  {

        /**
         * 驗證用戶登陸
        */

       public List<User> loginUser(String name, String password) {
        // TODO Auto-generated method stub
        User user = new User();
        user.setName(name);
        user.setPassword(password);
        return (List<User>) getHibernateTemplate().findByExample(user, 0, 1);
    }

}


            d.修改com.test.UserAction类,内容说明如下:

//增加了一个属性,类型为UserDaoImpl,

private UserDaoImpl userDaoImpl;

//userDaoImpl的gets,sets方法

public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

//修改execute方法,该方法将调用UserDaoImpl.loginUser(String name,String password)方法;用于到用户点击登录提交按钮时,验证用户是否存在。

    /**
     * 驗證登陸
     */
    public String execute() throws Exception {
        List<User> listUser=this.getUserDao().loginUser(this.getUserName(),this.getUserPassword());
        boolean bool=listUser.isEmpty();
        if(bool){

           //r若不存在该用户则跳转到failure指定的页面,这个failure要看struts.xml文件具体的配置。
            return "failure";
        }else{
            this.setUserId(listUser.get(0).getId());
            return SUCCESS;
        }      
    }

             e、打开/WEB-INF/applicationContext.xml文件,添加如下内容:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/userdb"></property>
    <property name="username" value="root"></property>
    <property name="password" value="mysql"></property>    
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="mappingResources">
        <list><value>com/test/entity/User.hbm.xml</value></list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>


<bean id="userDaoImpl" class="com.test.dao.impl.UserDaoImpl" >
    <property name="sessionFactory">
        <ref bean="sessionFactory"/>
    </property>
</bean>

<bean id="login" class="com.test.UserAction">
    <property name="userDaoImpl">
        <ref bean="userDaoImpl"/>
    </property>
</bean>

        f.打开/src/struts.xml文件,做如下修改:

原来的内容:

<action name="login" class="loginSpring">
     <result>/success.jsp</result>
</action>

修改后的内容:

<action name="login" class="login">
   <result>/success.jsp</result>
  <result name="failure">/failure.jsp</result>
</action>

             g.新建一个登录失败页面/WebContent/failure.jsp。内容任意,内容不重要。目的是当登录失败后能够有这个页面可以跳转。

四、测试

                      在浏览器下,打开login.jsp页面,先输入一个数据表中不存在的用户名和密码,其应当是跳转到failure.jsp页面。再输入一个存在的用户名和密码,其应当是跳转到success.jsp页面下。

                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值