Struts1.x 登录实验(数据库版)

前言

Struts1.x 登录实验-无数据库版基础上,进行一定的修改使其可以通过访问数据库来实现登录验证操作。


环境配置

下载MySQL相应的驱动

官网链接:https://downloads.mysql.com/archives/c-j/
注:本文所用MySQL版本为8.0.25, 使用的mysql-connector-java-8.0.26

注:请根据自己的MySQL版本选择相应的mysql-connector-java-x.x.x
具体MySQL版本与对应的mysql-connector-java版本,参见:
https://blog.csdn.net/xunxue1523/article/details/105524758
下载成功后,解压即可

导入到项目中

直接将mysql-connector-java-8.0.26.jar文件复制到WEB-INF/lib路径下即可
在这里插入图片描述


实验步骤

修改LoginAction类

添加成员变量

添加下列变量:

	// MySQL-URL(jdbc:mysql://ip:3306/数据库名)
	//          (jdbc:mysql://@localhost:3306/数据库名)
    static final String URL = "jdbc:mysql://192.168.31.131:3306/Strutsleaning";
    // 登录的用户名
    static final String USER  = "root";
    // 登录密码
    static final String PASSWD = "123456";

添加成员方法

添加成员方法private boolean verify(String username, String passwd)
来实现通过数据库校验的功能
具体实现如下:

private boolean verify(String username, String passwd) {
        try {
            // 加载数据库驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 获得数据库连接
            Connection conn = DriverManager.getConnection(URL, USER, PASSWD);
            // 通过数据库的连接操作数据库,实现增删改查
            Statement stmt = conn.createStatement();
            //查找和数据库存储数据一致的用户名
            String sql = "select passwd from login where username =\""+username+"\"";

            ResultSet rs = stmt.executeQuery(sql);

            //判断输入的密码是否和数据库中存储的密码是一致的
            while (rs.next()) {
                if(rs.getString("passwd").equals(passwd))
                    return true;
            }
            // 完成后关闭创建的实例
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        } catch (Exception e) {
            // 处理驱动程序错误
            e.printStackTrace();
        }
        return false;
    }

修改execute方法

if ("admin".equals(username) && "admin".equals(password))
修改为:
if(verify(username, passwd))


设置数据库

创建Strutsleaning数据库

CREATE DATABASE `Strutsleaning` 
CHARACTER SET 'utf8' 
COLLATE 'utf8_general_ci'

添加相应的登录表

CREATE TABLE `Strutsleaning`.`login`(
  `username` varchar(255) NOT NULL,
  `passwd` varchar(255) NULL,
  PRIMARY KEY (`username`)
)

添加root用户到登录表

INSERT INTO `Strutsleaning`.`login`(`username`, `passwd`) 
VALUES ('root', '123456')


运行测试

在这里插入图片描述
实验成功!


感谢阅读!

有疑问或者认为有错误请留言,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值