Generation

generate functionTue, 07 Jan 2025

login en jva

Aquí te muestro un ejemplo básico de cómo implementar un sistema de login en Java utilizando Java Servlet y JDBC para interactuar con una base de datos. **Requisitos previos** * Java 8 o superior * Java Servlet 3.1 o superior * JDBC Driver para tu base de datos (por ejemplo, MySQL Connector/J) * Base de datos con una tabla de usuarios (por ejemplo, MySQL) **Estructura del proyecto** * `LoginServlet.java`: Servlet que maneja la petición de login * `Usuario.java`: Clase que representa un usuario * `DAOUsuario.java`: Clase que interactúa con la base de datos para obtener usuarios * `ConexionBD.java`: Clase que establece la conexión con la base de datos **LoginServlet.java** ```java import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.sql.Connection; import java.sql.SQLException; @WebServlet("/login") public class LoginServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String usuario = req.getParameter("usuario"); String password = req.getParameter("password"); DAOUsuario dao = new DAOUsuario(); Usuario usuarioEncontrado = dao.obtenerUsuario(usuario, password); if (usuarioEncontrado != null) { req.getSession().setAttribute("usuario", usuarioEncontrado); resp.sendRedirect("/home"); } else { req.setAttribute("error", "Usuario o contraseña incorrectos"); req.getRequestDispatcher("/login.jsp").forward(req, resp); } } } ``` **Usuario.java** ```java public class Usuario { private String nombre; private String usuario; private String password; // Getters y setters public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` **DAOUsuario.java** ```java import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DAOUsuario { public Usuario obtenerUsuario(String usuario, String password) { Connection conn = ConexionBD.obtenerConexion(); try { PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM usuarios WHERE usuario = ? AND password = ?"); pstmt.setString(1, usuario); pstmt.setString(2, password); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { Usuario usuarioEncontrado = new Usuario(); usuarioEncontrado.setNombre(rs.getString("nombre")); usuarioEncontrado.setUsuario(rs.getString("usuario")); usuarioEncontrado.setPassword(rs.getString("password")); return usuarioEncontrado; } else { return null; } } catch (SQLException e) { System.out.println("Error al obtener usuario: " + e.getMessage()); return null; } finally { ConexionBD.cerrarConexion(conn); } } } ``` **ConexionBD.java** ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConexionBD { public static Connection obtenerConexion() { try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/usuarios", "usuario", "password"); return conn; } catch (ClassNotFoundException | SQLException e) { System.out.println("Error al obtener conexión: " + e.getMessage()); return null; } } public static void cerrarConexion(Connection conn) { try { conn.close(); } catch (SQLException e) { System.out.println("Error al cerrar conexión: " + e.getMessage()); } } } ``` **login.jsp** ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <form action="login" method="post"> <label for="usuario">Usuario:</label> <input type="text" id="usuario" name="usuario"><br><br> <label for="password">Contraseña:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="Iniciar sesión"> </form> <% if (request.getAttribute("error") != null) { out.println("<p style='color: red'>" + request.getAttribute("error") + "</p>"); } %> </body> </html> ``` **home.jsp** ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Home</title> </head> <body> <h1>Bienvenido, <%= request.getAttribute("usuario") %></h1> </body> </html> ``` Recuerda que debes adaptar la configuración de la base de datos y la conexión a tus necesidades específicas.

Want to kickstart your project?Use the new AI Studio to create your code