JDBC连接MySQL数据库,访问数据库信息完成登录功能(完整代码)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: JDBC连接MySQL数据库,访问数据库信息完成登录功能

实现整体代码(需要自提,记得点赞)

Servlet代码(loginServlet.java)

package servlet;

import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author s
 * @version 1.0
 */
@WebServlet("/loginServlet")
public class loginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public loginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String s1=request.getParameter("username");
        String s2=request.getParameter("password");
        request.setAttribute("s1", s1);

        //判断用户名、密码是否为空
        if(s1 == "" || s1.length() == 0){
            request.setAttribute("namemsg","用户名为空!");
            request.getRequestDispatcher("index.jsp").forward(request, response);
        }
        if(s2== "" || s2.length() == 0){
            request.setAttribute("pwdmsg","密码为空!");
            request.getRequestDispatcher("index.jsp").forward(request, response);
        }
        //密码部分结束
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");

        //加载mysql驱动
        String url ="jdbc:mysql://localhost:3306/abc";
        String  user = "root";
        String password = "123456";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            // 连接数据库
            Connection connection = DriverManager.getConnection(url,user,password);
            Statement statement = connection.createStatement();
            String sql = String.format("SELECT * FROM login WHERE `username` = '%s' AND `password` = '%s'",s1,s2);
            ResultSet resultSet = statement.executeQuery(sql);//返回的结果集
            if (resultSet.next()){
                request.getRequestDispatcher("login.jsp").forward(request,response);
            }else if(s1.equals("") || s2.equals("")){
                request.getRequestDispatcher("loginf.jsp").forward(request,response);
            }
            else{request.getRequestDispatcher("loginf.jsp").forward(request,response);}
        }catch(ClassNotFoundException | SQLException e) {
            e.printStackTrace();
            System.out.println("失败");
        }
    }
}

jsp代码(index.jsp)

<%--
  Created by IntelliJ IDEA.
  User: 86151
  Date: 2022/5/24
  Time: 14:32
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <base href="<%=basePath%>">
  <title>用户登录</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
  <link rel="stylesheet" type="text/css" href="styles.css">
  -->
  <style type="text/css">
  </style>
</head>
<body>
<div>
  <form action="loginServlet" method="post">
    <table align="center" >
      <tr>
        <td>用户名:</td>
        <td><input type="text" name="username"> <font color="red">
          ${requestScope.namemsg}${requestScope.nameError}</font></td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><input type="password" name="password"> <font color="red">
          ${requestScope.pwdError}${requestScope.pwdmsg}</font></td>
      </tr>
      <tr>
        <td></td>
        <td><input type="submit" value="登录">
          <input type="button" value="注册" onclick='location.href=("registered.jsp")' />

        </td>
      </tr>
    </table>
  </form>
</div>
<%--<p align="center">--%>
<%--<a href="goods_bean_index.jsp">管理员登录</a>--%>
<%--</p>--%>

</body>
</html> 

实现效果

登录页面

请添加图片描述

账号 or 密码 为null

请添加图片描述
请添加图片描述

两个账户分别登录成功

请添加图片描述
请添加图片描述

登录失败

请添加图片描述

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
704 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
6月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
2112 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
6月前
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
1209 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
|
SQL Java 数据库连接
JDBC编程安装———通过代码操控数据库
本文,教你从0开始学习JBCD,包括驱动包的下载安装调试设置,以及java是如何通过JBDC实现对数据库的操作,以及代码的分析,超级详细
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
361 5
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
511 158
|
7月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1279 152
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
952 156
|
7月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
535 156

推荐镜像

更多