使用JDBC完成登录

  1. 开发需求

完成登录功能。

  1. 环境配置

2.1下载驱动包并配置jar包

下载地址:https://mvnrepository.com/

在搜索框输入mysql,选择mysql connect java,选择对应的版本后点击版本,进入后点击jar下载即可。

首先我们需要创建一个web项目工程,然后在web包下的WEB-INF下创建一个lib包,里面放入mysql连接jar包。

步骤:

  1. 在项目的根目录下创建文件夹,这个文件夹必须命名为lib

  1. 然后将下载的jar包粘贴到lib文件夹下

  1. 选中jar包,点击右键,然后选中ADD as libxxx,然后就可以了

如下图配置

注意一个项目只需添加一次jar包并且放入后一定要记得导入,右击jar包点击ADD Library进行导入。
  1. 在index.jsp首页中添加一个a标签,跳转到登录页面

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2023/2/13
  Time: 15:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>第一个Web项目</title>
  </head>
  <body>
  <h2>欢迎学习</h2>
  <a href="login.jsp">去登录</a>
  </body>
</html>
  1. 创建一个login.jsp作为登录页面,书写form表单指定提交地址和提交方式

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2023/2/15
  Time: 10:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录页面</title>
</head>
<body>
     <h2>登录</h2>
<%-- --%>
<form action="login" method="post">
    账号:<input type="text" name="username" value="" /><br/>
    密码:<input type="password" name="password" value="" /><br/>
    <input type="submit" value="登录" />
</form>
</body>
</html>
  1. servlet步骤:

  1. 设置请求和响应的编码格式,以及相应的格式

//1.设置请求和响应的编码
        request.setCharacterEncoding("utf-8");//设置请求的编码
        response.setCharacterEncoding("utf-8");//设置响应的编码
        response.setContentType("text/html;charset=UTF-8");//设置响应的文本格式和编码
  1. 获取请求的参数

 //2.获取请求参数
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
  1. 执行业务处理--JDBC操作

 //3.业务处理--JDBC操作
        Connection con = null;//数据库连接对象
        PreparedStatement pstm = null;//预处理对象
        ResultSet rs = null;//结果集对象
        User login = null;
JDBC:
1.加载数据库驱动
2.获取数据库连接
3.定义登灵的sql语句
4.获取预处理对象
5.传参
6.执行查询
7.解析结果集------从结果集中获取数据,然后封装到实体类对象中
8.关闭资源

JDBC的操作步骤

  • jar5.x的驱动位置:com.mysql.jdbc.driver

  • Jar8.x的驱动位置:com.mysql.cj.jdbc.Driver

 try {
            //1.加载数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获得数据库连接对象
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC", "root", "root");
            //3.定义sql语句
            String sql = "select * from t_user where username=? and password=?";
            //4.获取预处理对象
            pstm = con.prepareStatement(sql);
            //5.传参
            pstm.setObject(1, username);
            pstm.setObject(2, password);
            //6.执行sql
            rs = pstm.executeQuery();
            //7.结果集处理
            if (rs.next()) {
                login = new User();
                //从结果集中获取数据,然后封装到实体类对象中
                int uid = rs.getInt("uid");
                login.setUid(uid);
                login.setUsername(rs.getString("username"));
                login.setPassword(rs.getString("password"));
                login.setPhone(rs.getString("phone"));
                login.setAddress(rs.getString("address"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            {
                //8.关闭资源
                try {
                    if (rs != null) {
                        rs.close();
                    }
                    if (pstm != null) {
                        pstm.close();
                    }
                    if (con != null) {
                        con.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        }

创建一个zhuye.jsp作为跳转页面

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2023/2/17
  Time: 20:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>欢迎来到主页</h2>
</body>
</html>

在error.jsp中添加一个a标签,出错后跳转到登录页面

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2023/2/17
  Time: 19:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>错误页</title>
</head>
<body>
<h2>出错啦!</h2>
<a href="login.jsp">返回登录</a>
</body>
</html>

4.判断登录的用户信息是否为空

//4.判断业务处理结果,给前端做出响应
        if (login != null) {
            //登录成功
            response.sendRedirect("zhuye.jsp");
        } else {
            //登录失败
            response.sendRedirect("error.jsp");
        }
    }

输出的页面如下:

点击去登录,则进入下一个登录页面,如下图所示:

如果账号或者密码输入错误,那么就会进入出错的页面,那么就点击返回登录。如下图所示:

如果账号或者密码输入正确,那么就会进入欢迎来到主页的页面。如下图所示:

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值