본문 바로가기

jsp

세션 기반 로그인: 세션을 활용한 로그인 및 로그아웃 시스템 구현 예제.

반응형

세션 기반 로그인은 사용자 정보를 서버의 세션에 저장하여 로그인 상태를 관리하는 방법입니다. 사용자가 로그인하면 서버는 해당 사용자의 정보를 세션에 저장하고, 사용자는 세션 ID를 통해 인증됩니다. 이 ID는 사용자가 로그아웃하거나 세션이 만료될 때까지 유효합니다. 아래는 세션 기반 로그인과 로그아웃 시스템을 구현하는 두 가지 예제입니다.

예제 1: 세션 기반 로그인

이 예제는 사용자로부터 아이디와 비밀번호를 받아, 성공적으로 로그인 처리를 한 후, 세션에 사용자 정보를 저장합니다.

login.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Session Based Login</title>
</head>
<body>
<form action="loginHandler.jsp" method="post">
    Username: <input type="text" name="username"><br>
    Password: <input type="password" name="password"><br>
    <input type="submit" value="Login">
</form>
</body>
</html>

loginHandler.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    // Dummy validation for username and password. Replace with database validation in real app
    if("admin".equals(username) && "admin123".equals(password)) {
        // Set username as an attribute of session
        session.setAttribute("username", username);
        out.println("Welcome, " + username + "!");
        // Redirect to a secured page or user profile page
        // response.sendRedirect("userProfile.jsp");
    } else {
        out.println("Invalid username or password!");
        // Optionally redirect back to login page or show error
        // response.sendRedirect("login.jsp");
    }
%>

 

예제 2: 세션 기반 로그아웃

이 예제는 사용자가 로그아웃 버튼을 클릭하면 세션을 종료시키는 기능을 구현합니다.

logout.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    // Invalidate the session and remove all attributes
    session.invalidate();
    out.println("You have been successfully logged out!");
    // Optionally redirect to login page or home page
    // response.sendRedirect("login.jsp");
%>

관련 전문용어 설명

  • 세션(Session): 서버에 저장되는 사용자 정보로, 사용자가 브라우저를 닫거나 로그아웃할 때까지 유지됩니다. 사용자의 로그인 상태를 관리하는 데 사용됩니다.
  • 세션 ID: 서버가 각 클라이언트(브라우저)를 구별하기 위해 생성하는 고유한 식별자입니다. 이는 쿠키에 저장되어 클라이언트와 서버 간 통신에 사용됩니다.
  • invalidate(): 세션을 종료하고 세션에 저장된 모든 데이터를 제거하는 메소드입니다.
반응형