[java] 서블릿에서의 세션 관리 방법

서블릿은 상태를 유지하기 위해 세션을 사용할 수 있습니다. 세션은 클라이언트와 서버 간에 상태 정보를 유지하는 기술로, 사용자별로 데이터를 저장하고 접근할 수 있는 방법을 제공합니다. 이번 글에서는 서블릿에서 세션을 관리하는 방법에 대해 알아보겠습니다.

세션 생성하기

HttpSession session = request.getSession();

위의 코드를 사용하여 세션 객체를 생성할 수 있습니다. 이 메서드는 클라이언트의 세션을 확인하고, 없는 경우에는 새로운 세션을 생성합니다. getSession 메서드의 인자로 true를 전달하면 세션이 존재하지 않는 경우에도 새로운 세션을 생성합니다.

세션에 데이터 저장하기

session.setAttribute("key", value);

세션 객체의 setAttribute 메서드를 사용하여 원하는 데이터를 저장할 수 있습니다. “key”는 데이터를 식별하기 위한 이름, value는 실제 데이터입니다.

세션에서 데이터 가져오기

Object value = session.getAttribute("key");
if (value != null) {
  // 데이터가 존재하는 경우에 처리하는 로직
} else {
  // 데이터가 존재하지 않는 경우에 처리하는 로직
}

세션 객체의 getAttribute 메서드를 사용하여 저장된 데이터를 가져올 수 있습니다. “key”에 해당하는 데이터가 없는 경우 null을 반환합니다.

세션에 데이터 삭제하기

session.removeAttribute("key");

세션 객체의 removeAttribute 메서드를 사용하여 저장된 데이터를 삭제할 수 있습니다. “key”에 해당하는 데이터가 없는 경우에는 아무런 동작도 수행하지 않습니다.

세션의 유효 시간 설정하기

세션은 기본적으로 클라이언트의 브라우저가 닫힐 때까지 유지됩니다. 그러나 세션의 유효 시간을 직접 설정할 수도 있습니다. web.xml 파일에서 session-config 엘리먼트를 사용하여 세션의 최대 유효 시간을 설정할 수 있습니다.

<session-config>
   <session-timeout>30</session-timeout>
</session-config>

위의 예시에서는 세션의 유효 시간을 30분으로 설정한 것입니다.


세션은 서블릿에서 사용자 정보나 상태 정보를 유지하기 위한 강력한 기능입니다. 세션을 올바르게 사용하여 사용자 경험을 향상시킬 수 있습니다. 자세한 내용은 Oracle Java Docs를 참고하시기 바랍니다.