본문 바로가기

JSP/JSP Programming

[JSP] 세션(Session)을 완전히 삭제하기 - invalidate() -

반응형

세션(Session)을 완전히 삭제하기 - invalidate() -


 -. 세션의 유효 시간은 기본적으로 30으로 잡혀 있다.

 -. 세션이 더 이상 사용되지 않는다면 세션 정보도 더 이상 필요하지 않는다.

 -. 이때 설정된 세션의 값들을 모두 사라지도록 하기 위해서는 세션 객체의 invalidate 함수를 사용한다.

 -. invalidate 함수는 세션을 없애고 세션에 속해있는 값들을 모두 없앤다.

형식

void invalidate()


# 설정된 모든 세션을 제거하기

  invalidate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.util.Enumeration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>설정된 모든 세션을 제거하기</title>
</head>
<body>
<center>
    <h3>[  세션을 제거하는 예제  ]</h3>
</center>
<hr/>
invalidate() 메소드를 사용하여 세션을 삭제하는 예제입니다.
<%
    String s_name;

    String s_value = "저는 세션에 저장된 첫 번째 값이에요 ^o^";
    session.setAttribute("s_name1", s_value);

    s_value = "저는 세션에 저장된 두 번째 갑이에요 ^o^";
    session.setAttribute("s_name2", s_value);

    s_value = "저는 세션에 저장된 세 번째 갑이에요 ^o^";
    session.setAttribute("s_name3", s_value);

    out.print("<hr/><h3>----- 세션값을 삭제하기 전 -----</h3>");
    Enumeration enum_app = session.getAttributeNames();
   
    int i = 0;
   
    while (enum_app.hasMoreElements()) {
       
        i++;
        s_name = enum_app.nextElement().toString();
        s_value = session.getAttribute(s_name).toString();
        out.println("<hr/>얻어온 세션 이름 [ " + i + " ] : " + s_name);
        out.println("<br/>얻어온 세션 값 [ " + i + " ] : " + s_value);
    }
   
    // 설정된 세션의 값들을 모두 사라지도록한다.
    session.invalidate();
   
    // 혹은 invalidate 메소드 대신 setMaxInactiveInterval 메소드를 호출하되
    // 0을 지정하면 유효시간을 0으로 설정한 것이 되므로 세션 아이디가 유효하지 않게 된다.
    // session.setMaxInactiveInterval(0);

   
    out.print("<hr/><h3>----- 세션값을 삭제한 후 -----</h3>");
    out.print("<hr/>과연 세션 아이디가 유효할까요?<br/>");
   
    if (request.isRequestedSessionIdValid() == true) {
       
        out.print("세션 아이디가 유효합니다.<hr/>");
    }
   
    else {
       
        out.print("세션 아이디가 유효하지 않습니다.<hr/>");
    }
%>
</body>
</html>

 출력화면


반응형