spring 如何使用数据库限制应用程序的登录?

mnemlml8  于 2023-04-28  发布在  Spring
关注(0)|答案(1)|浏览(149)

我正在执行一个使用Spring的Web应用程序项目,其中我使用HTML,Java和Oracle SQL(用于数据库)。我的问题是,我的HTML代码之一是在应用程序中的登录,但我希望能够将其与数据库链接,以便访问网络只允许如果输入的用户和密码是在数据库的USER表。这是我的HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Iniciosesion</title>
</head>
<body>

    <center>
        <img src="Imagenes%20de%20inicio/icono.png">
        <h2>Usuario</h2>
        <input type ="text" name = "username">
        <h2>Contraseña</h2>
        <input type ="text" name = "password">
        <a href="index.html"><input type="button" value="Ir"></a>
        <form action="Coger_datos" method="post">
            <input type="submit" value="Ir">
        </form>

        <a href="usuario/add.html"><input type="button" value="Crear cuenta"></a>
    </center>

</body>
</html>

我还找到了一个Java模板来访问Oracle数据库,但我不知道如何将它与HTML代码关联起来,以便所有内容都连接起来:

package es.uma.ingsoftware.goldendumbbell.Controller;

import java.sql.*;

public class Coger_datos {

    public static void main(String args[]) throws SQLException {

        System.out.println("\nEstableciendo conexión...");
        Connection con = DriverManager.getConnection("zzzzz", "xxxxxx", "yyyyy");
        System.out.println("Conexión establecida\n");
        Statement stmt = con.createStatement();

        String consulta = "SELECT CONTRASEÑA FROM USUARIO where usuario.nombre = 'javimp2003'";
        System.out.println("Se va a ejecutar la consulta: " + consulta);
        System.out.println("\nIniciando transacción...");
        ResultSet rset = stmt.executeQuery(consulta);

        System.out.println("Resultado de la consulta:");
        while (rset.next()) { 
            int ncol = rset.getMetaData().getColumnCount();
            for (int i = 1; i <= ncol; i++) { // for: Itera sobre las columnas de la fila
                System.out.print(rset.getString(i));
                if (i < ncol)
                    System.out.print(" | ");
            }
            System.out.println();
        }
        System.out.println("Finalizando transacción...");
        stmt.close();
        con.close();
        System.out.println("\nConexión finalizada");
    }
}

这是登录的预览:

....................

z9zf31ra

z9zf31ra1#

据我所知,你需要知道如何链接到数据库的登录页面。这应该是常识,您应该将数据库表与Spring应用程序连接,并从前端向Spring应用程序发送http请求。YouTube上有很多关于如何做到这一点的教程,我认为AmigosCode解释得最好。要限制登录页面的访问,您需要在页面上创建一个表单,从表单中检索数据,然后调用Spring应用程序中的方法,该方法根据您在表单中询问的内容通过姓名或电子邮件向您提供人员,然后将表单中的密码与从数据库中检索的用户密码进行比较。还应该注意的是,你需要使用一个框架,如react来代码的所有前端,因为html将是不够的。这是我如何实现请求的一个片段。

const response = await fetch(
      //the port should be 8080 if you use spring `http://localhost:8080/pathToControllerClass/IdentifierToDifferentiateMethods/${parameterFromTheForm}`
    );
// and this is how you should handle the verification
const data = await response.json();
    if (response.ok && name === data.name && pass === data.password) {
      authContext.login();
      handleLogin(data.id);
      props.onFormSwitch("home");
    }

相关问题