JSP에서 세션(session)은 사용자별 상태 정보를 서버에 저장하고 관리하는 핵심 기술입니다. 로그인 상태 유지, 장바구니 관리, 사용자 설정 저장 등 다양한 기능이 세션 객체를 기반으로 구현됩니다. 이 글에서는 JSP 개발 시 가장 자주 사용되는 세션 객체의 주요 메소드 11가지를 정리하여 소개합니다.
JSP 세션 객체의 주요 메소드 목록
| 번호 | 메소드 및 설명 |
|---|---|
| 1 | public Object getAttribute(String name) 세션에 지정된 이름으로 바인딩된 객체를 반환합니다. 해당 이름으로 저장된 객체가 없으면 null을 반환합니다. |
| 2 | public Enumeration getAttributeNames() 현재 세션에 바인딩된 모든 객체의 이름을 담고 있는 String 객체들의 Enumeration을 반환합니다. |
| 3 | public long getCreationTime() 세션이 생성된 시간을 1970년 1월 1일 자정(GMT) 이후 경과된 밀리초(ms) 단위로 반환합니다. |
| 4 | public String getId() 해당 세션에 할당된 고유 식별자(ID)를 문자열 형태로 반환합니다. |
| 5 | public long getLastAccessedTime() 클라이언트가 해당 세션과 관련된 요청을 마지막으로 보낸 시간을 1970년 1월 1일 자정(GMT) 이후 경과된 밀리초 단위로 반환합니다. |
| 6 | public int getMaxInactiveInterval() 서블릿 컨테이너가 클라이언트의 요청 없이 세션을 유지하는 최대 시간 간격을 초 단위로 반환합니다. |
| 7 | public void invalidate() 세션을 강제로 무효화하고, 세션에 바인딩된 모든 객체의 바인딩을 해제합니다. 주로 로그아웃 처리에 사용됩니다. |
| 8 | public boolean isNew() 클라이언트가 아직 해당 세션을 인지하지 못했거나 세션 참여를 거부한 경우 true를 반환합니다. |
| 9 | public void removeAttribute(String name) 세션에서 지정된 이름으로 바인딩된 객체를 제거합니다. |
| 10 | public void setAttribute(String name, Object value) 지정한 이름을 키(key)로 하여 객체를 세션에 저장(바인딩)합니다. |
| 11 | public void setMaxInactiveInterval(int interval) 클라이언트의 요청이 일정 시간 동안 없을 경우 세션을 무효화하도록, 그 시간 간격을 초 단위로 지정합니다. |
자주 사용되는 메소드 조합 예시
실무에서는 위 메소드들을 조합하여 다음과 같이 활용할 수 있습니다.
1. 값 저장 및 조회
setAttribute()로 로그인 사용자 정보를 저장하고, 다른 페이지에서 getAttribute()로 해당 정보를 꺼내 사용하는 패턴이 가장 일반적입니다.
2. 로그아웃 처리
invalidate()를 호출하면 세션에 저장된 모든 데이터가 삭제되므로, 로그아웃 기능을 간단하고 안전하게 구현할 수 있습니다.
3. 세션 타임아웃 설정
setMaxInactiveInterval()을 사용하면 보안을 위해 일정 시간 동안 활동이 없는 사용자의 세션을 자동으로 만료시킬 수 있습니다.
마무리
세션 객체의 메소드를 정확히 이해하면 사용자 상태 관리를 효율적으로 처리할 수 있습니다. 특히 setAttribute / getAttribute / removeAttribute / invalidate 네 가지 메소드는 실무에서 가장 빈번하게 사용되므로 반드시 숙지하시기 바랍니다.