JSP에서 세션 타임아웃과 종료 설정 방법: 사용자 상태 관리
이 글에서는 JSP에서 세션 타임아웃을 설정하고, 세션을 종료하는 방법에 대해 알아봅니다. 타임아웃을 활용한 자동 로그아웃 기능 구현과 같은 실제 사례를 통해 세션 관리를 이해할 수 있습니다.
1. 세션 타임아웃의 개념과 필요성
세션 타임아웃은 사용자가 일정 시간 동안 활동이 없을 경우, 세션을 자동으로 종료하는 기능입니다. 이 기능은 사용자의 로그인 상태를 일정 시간 동안만 유지하며, 보안을 강화하고 서버 자원을 효율적으로 관리하는 데 중요한 역할을 합니다.
2. 세션 타임아웃 설정 방법
세션 타임아웃을 설정하는 방법은 크게 두 가지입니다. web.xml
파일을 수정하여 전체 애플리케이션에 대한 타임아웃을 설정하거나, HttpSession
객체의 setMaxInactiveInterval()
메서드를 사용하여 특정 세션에 대해 타임아웃을 설정할 수 있습니다.
web.xml에서 세션 타임아웃 설정
애플리케이션의 전체 세션 타임아웃을 설정하려면 web.xml
파일에서 <session-config>
태그를 사용합니다. 이 설정은 모든 사용자의 세션에 동일하게 적용됩니다.
<session-config>
<session-timeout>30</session-timeout>
</session-config>
JSP 코드에서 타임아웃 설정
특정 세션에 대해 타임아웃을 설정하려면 setMaxInactiveInterval()
메서드를 사용합니다. 이 메서드는 초 단위로 타임아웃을 설정할 수 있으며, 세션이 생성된 후 언제든지 호출할 수 있습니다.
<%
// 세션 타임아웃을 10분으로 설정 (단위: 초)
session.setMaxInactiveInterval(10 * 60);
%>
3. 세션 종료 방법
세션을 명시적으로 종료하려면 invalidate()
메서드를 사용합니다. 이 메서드는 세션을 즉시 종료하고, 세션에 저장된 모든 데이터를 삭제합니다. 예를 들어, 사용자가 로그아웃할 때 다음과 같이 세션을 종료할 수 있습니다.
<%
// 세션 종료 (로그아웃 처리)
session.invalidate();
%>
4. 실습 예제: 자동 로그아웃 기능 구현
세션 타임아웃을 활용하여 사용자가 일정 시간 동안 활동이 없으면 자동으로 로그아웃되는 기능을 구현할 수 있습니다. 아래는 이 기능을 구현하는 간단한 예제입니다.
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>로그인 페이지</title>
</head>
<body>
<h2>로그인 페이지</h2>
<%
// 세션에 사용자 정보 저장
String username = "BlueShare";
session.setAttribute("username", username);
// 세션 타임아웃 설정 (10분)
session.setMaxInactiveInterval(10 * 60);
// 환영 페이지로 리디렉션
response.sendRedirect("welcome.jsp");
%>
</body>
</html>
welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>환영 페이지</title>
</head>
<body>
<h2>환영 페이지</h2>
<%
String username = (String) session.getAttribute("username");
if (username != null) {
out.println("환영합니다, " + username + "님!");
} else {
out.println("세션이 만료되었습니다. 다시 로그인해주세요.");
}
%>
</body>
</html>
위 예제에서 사용자가 10분 동안 활동하지 않으면 세션이 자동으로 종료되며, 환영 페이지에서 세션이 만료되었음을 알리는 메시지를 출력합니다.
▼ 실행 결과 화면


이 글을 통해 JSP에서 세션 타임아웃과 종료를 설정하는 방법을 이해하고, 이를 활용한 자동 로그아웃 기능 구현할 수 있었습니다. 이러한 기능은 웹 애플리케이션의 보안을 강화하는 데 매우 유용합니다.
관련 이전 게시글
- JSP에서 세션 관리: 세션 시작, 데이터 저장 및 불러오기, 타임아웃
- JSP 내장 객체 사용법: session과 application
- JSP에서 Tomcat 서버와 MariaDB 연동: 커넥션 풀 설정 및 테스트
- JSP 쿠키 사용하기: 생성, 읽기, 삭제 방법
- JSP/Servlet 웹 애플리케이션에서 web.xml 활용한 에러 페이지 설정
이 글이 도움이 되셨다면 공유 부탁 드립니다.