使用JDBC完成登录和注册

这篇博客介绍了如何使用JDBC进行登录和注册操作。首先,通过在index.jsp页面添加链接跳转到login.jsp登录页面,然后展示了创建login.jsp页面并设定form表单的详细步骤。接着,讲解了Servlet处理登录请求的流程,包括设置请求和响应编码、获取请求参数,以及JDBC操作的详细步骤,如加载驱动、建立连接、执行SQL等。最后,涉及了登录验证和错误处理,如果登录成功则跳转到zhuye.jsp主页,失败则跳转到error.jsp显示错误信息。
  1. 在项目的根目录下创建文件夹,这个文件夹必须命名为li

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

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

注意一个项目只需添加一次jar包并且放入后一定要记得导入,右击jar包点击ADD Library进行导入

在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> 

 

创建一个login.jsp作为登录页面,书写form表单指定提交地址和提交方式

<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/>

 

servlet步骤:

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

  2.  request.setCharacterEncoding("utf-8");//设置请求的编码

  3.         response.setCharacterEncoding("utf-8");//设置响应的编码
            response.setContentType("text/html;charset=UTF-8")

 2.获取请求参数
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);

执行业务处理--JDBC操作

 //3.业务处理--JDBC操作
        Connection con = null;//数据库连接对象
        PreparedStatement pstm = null;//预处理对象
        ResultSet rs = null;//结果集对象
        User login = null;

JDBC的操作步骤

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作为跳转页面

  1. <html>

  2. <head>

  3. <title>Title</title>

  4. </head>

  5. <body>

  6. <h2>欢迎来到主页</h2>

  7. </body>

  8. </html>

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


 

  1. <html>

  2. <head>

  3. <title>错误页</title>

  4. </head>

  5. <body>

  6. <h2>出错啦!</h2>

  7. <a href="login.jsp">返回登录</a>

  8. </body>

  9. </html>

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

if (login != null) {
            //登录成功
            response.sendRedirect("zhuye.jsp");
        } else {
            //登录失败
            response.sendRedirect("error.jsp");
        }

}

输出的页面如下:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值