Cookies

PHOTO EMBED

Sun Nov 03 2024 18:16:21 GMT+0000 (Coordinated Universal Time)

Saved by @login123

//First, create a database named 'user_db' and a table named 'users'
sql: 
CREATE DATABASE user_db;
 
USE user_db;
 
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL
);
 
-- Insert a sample user (password should be hashed in real applications)
INSERT INTO users (username, password) VALUES ('testuser', 'password123');
 
//login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h2>Login</h2>
    <form action="LoginServlet" method="post">
        Username: <input type="text" name="username" required><br><br>
        Password: <input type="password" name="password" required><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>
 
//LoginServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
 
        // JDBC connection setup
        String jdbcURL = "jdbc:mysql://localhost:3306/user_db";
        String dbUser = "root"; // Change as needed
        String dbPassword = "password"; // Change as needed
 
        try (Connection conn = DriverManager.getConnection(jdbcURL, dbUser, dbPassword)) {
            String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
            PreparedStatement statement = conn.prepareStatement(sql);
            statement.setString(1, username);
            statement.setString(2, password);
            ResultSet resultSet = statement.executeQuery();
 
            if (resultSet.next()) {
                // User found, create a cookie
                Cookie loginCookie = new Cookie("username", username);
                loginCookie.setMaxAge(30 * 60); // Set cookie to expire in 30 minutes
                response.addCookie(loginCookie);
 
                // Redirect to welcome page
                response.sendRedirect("welcome.jsp");
            } else {
                // Invalid credentials
                PrintWriter out = response.getWriter();
                out.println("<font color=red>Invalid username or password.</font>");
                request.getRequestDispatcher("login.html").include(request, response);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//logout.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Cookie loginCookie = new Cookie("username", null);
        loginCookie.setMaxAge(0); // Delete the cookie
        response.addCookie(loginCookie);
 
        response.sendRedirect("login.html");
    }
}
//welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.Cookie"%>
<%@ page import="javax.servlet.http.HttpServletRequest"%>
<%
    String username = null;
    Cookie[] cookies = request.getCookies();
    
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if ("username".equals(cookie.getName())) {
                username = cookie.getValue();
                break;
            }
        }
    }
 
    if (username == null) {
        response.sendRedirect("login.html");
    }
%>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome</title>
</head>
<body>
    <h2>Welcome, <%= username %>!</h2>
    <form action="LogoutServlet" method="post">
        <input type="submit" value="Logout">
    </form>
</body>
</html>
content_copyCOPY