Struts 2+Hibernate实现完整登录注册(带验证)

本文档详细介绍了使用Struts 2和Hibernate框架在MyEclipse环境中实现登录注册功能的全过程。包括环境配置、项目准备工作、登录功能实现(包括DAO层、界面及验证)、注册功能实现(包括数据库操作、输入合法性检查和界面展示),以及可能出现的冲突解决办法。
摘要由CSDN通过智能技术生成

Struts 2+Hibernate实现完整登录注册

这里写图片描述

这里写图片描述

环境

MyEclipse 2014
数据库:SQL sever 2016
Tomcat:apache-tomcat-8.0.46
JDK:1.6
Sturts版本:2.1
Hibernate版本:4.1

前期准备

这里写图片描述

创建项目以后,为项目添加SturtsHibernate能力

连接数据库并生成POJO类:Hibernate框架连接SQL sever 2016完整详细步骤

还有一个一定会出错的地方,因为Hibernate和Struts 2 中有相同的包(版本不同)会引起冲突,所以要把Struts 2 中的antlr-2.7.2.jar移除,具体操作可以看这篇:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I最终解决方案

登录功能

1.先编写对数据库进行操作的DAO类UserInfoDao.java

public class UserInfoDao {
   
    private Session session;
    private Transaction t;
    public void getCurrentSession(){
        session=HibernateSessionFactory.getSession();
    }

    public void closeSession(){
        if(session!=null){
            HibernateSessionFactory.closeSession();
        }
    }

    /**
     * 登录函数:验证用户名和密码
     * @param vo
     * @return true 存在
     * @return false 不存在
     */

    public boolean loginByUserInfo(UserInfo vo){
        getCurrentSession();
        t=session.beginTransaction();
        String userAccount = vo.getUserAccount();
        String userPassword = vo.getUserPassword();
        Query query = session.createQuery("from UserInfo where userAccount='"+userAccount+"' and userPassword='"+userPassword+"'");
        List list=query.list();
        closeSession();
        if(list!=null)
            return true;
        return false;
    }
}

2.LoginAction.java

package org.action;

import java.util.Map;

import org.dao.UserInfoDao;
import org.vo.UserInfo;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
   
    private UserInfo userInfo;
    private String message;  //用于显示验证错误信息

    /**
     *  处理用户请求的 execute 方法
     *  因为此函数在 validate()后执行,所以可以保证用户名和密码正确
     *  @return SUCCESS 
     */
    public String execute() throws Exception{
        Map<String,Object> session = ActionContext.getContext().getSession();
        session.put("userInfo", userInfo);
        return SUCCESS;
    }

    /**
     *  验证用户名和密码
     *  先判断是否为空,再验证
     */
    public void validate(){
        if(userInfo.getUserAccount()==null || userInfo.getUserAccount().equals(""))
            this.addFieldError("userAccount", "用户名不能为空");
        else if(userInfo.getUserPassword()==null || userInfo.getUserPassword().equals(""))
            this.addFieldError("userPassword", "密码不能为空");
        else {
            UserInfoDao dao = new
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值