{ JSP } JSP_3

Session

  • 세션(Session)은 웹 애플리케이션에서 사용자의 상태를 유지하고 데이터를 저장하는 데 유용한 방법입니다.
  • 로그인 페이지에서 세션을 사용하는 것은 매우 일반적인 작업입니다.

코드 예시

로그인 서블릿 (로그인 검증 및 세션 설정)

@WebServlet("/Login.do")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 아이디와 비밀번호를 요청에서 가져옴
        String id = request.getParameter("id");
        String password = request.getParameter("password");

        // 간단한 로그인 검증
        if ("bigie2".equals(id) && "0000".equals(password)) {
            // 세션을 생성하거나 기존 세션을 가져옴
            HttpSession session = request.getSession();
            // 사용자 아이디를 세션에 저장
            session.setAttribute("id", id);
            // 대시보드 페이지로 리다이렉트
            response.sendRedirect("/myPage.jsp");
        } else {
            // 로그인 실패 메시지를 설정하고 로그인 페이지로 포워드
            request.setAttribute("message", "로그인에 실패하였습니다.");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }
    }
}

로그인 후 페이지 (성공 시)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>대시보드</title>
</head>
<body>
    <%
    // 세션에서 사용자 아이디를 가져옴
    String userId = (String) session.getAttribute("id");

    if (userId == null) {
        // 세션에 아이디가 없으면 로그인 페이지로 리다이렉트
        response.sendRedirect("/login.jsp");
    } else {
    %>
        <h1>안녕하세요, <%= userId %>님!</h1>
        <a href="Logout.do">로그아웃</a>
    <%
    }
    %>
</body>
</html>

요약

  • 세션 확인: session.getAttribute(“id”)로 세션에 저장된 사용자 아이디를 확인합니다. 확인 되는 id가 없으면 로그인 페이지(/login.jsp)로 리다이렉트하여 로그인하도록 유도합니다.

로그인 후 페이지 (실패 시)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>로그인 페이지</title>
</head>
<body>
    <!-- 로그인 폼 -->
    <form action="/Login.do" method="post">
        아이디 : <input type="text" name="id"><br>
        비밀번호 : <input type="password" name="password"><br>
        <input type="submit" value="로그인">
    </form>

    <!-- 로그인 처리 메시지 출력 -->
    <%= request.getAttribute("message") == null ? "" : request.getAttribute("message") %>
</body>
</html>

요약

  • 이 JSP 는 사용자 로그인 정보를 입력받기 위한 폼을 제공합니다. 사용자가 아이디와 비밀번호를 입력하고 제출하면 /Login.do 서블릿으로 POST 요청이 전송됩니다. 서블릿에서 로그인 처리 결과로 설정한 메시지가 있으면(로그인이 실패하면) 이 페이지에서 표시됩니다.