쿠키의 유효시간

쿠키를 삭제할때 setMaxAge()를 이용해 삭제를 할 수 있었습니다.

쿠키는 보통 유효시간을 정해주지 않으면 웹 브라우저를 닫음과 동시에 쿠키가 삭제 됩니다.

그러나 유효시간을 정해놓으면 설정해놓은 유효시간동안 쿠키가 존재하게 되고 웹 브라우저를 닫아도 유효시간이 남아있으면 쿠키는 삭제되지 않고 남아있게 됩니다.

setMaxAge()의 매개변수로 60을 넣어준다면 60초, 즉 1분동안 유효시간이 되는것이다.

1
2
3
4
<%
    Cookie cookie = new Cookie("name","sogom");
    cookie.setMaxAge(60*60);  //1시간
%>
cs

세션의 유효시간

세션은 session객체가 사용될 때마다 최근의 접근한 시간이 갱신됩니다.

getLastAccessedTime()를 이용하면 최근에 접근한 시간을 알 수 있습니다.

물론 page디렉티브에서 session의 속성값을 "false"로 설정했다면 세션을 사용하지 않으므로 필요가 없겠죠.

그리고 세션은 최근 접근시간, 즉 마지막으로 접근한 시간 이후로 일정 시간동안 세션에 접근을 하지 않게되면 세션은 자동으로 종료됩니다. 예를 들어 세션시간이 한시간이라면~

최근의 접근시간 이후, 한시간이 지난후 다시 세션사용을 요청하면 새로운 세션이 생성이 되는거죠.

그럼 이 세션의 유효시간을 어떻게 설정하느냐~!!

방법은 두가지 정도있습니다.


첫번째는 WEB-INF/web.xml에서 <session-config>태그에서 세션 유효시간을 정해줄 수 있습니다.

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="WebApp_ID" version="3.0">
  <display-name>session</display-name>
  <session-config>
      <session-timeout>30</session-timeout>
  </session-config>
</web-app>

cs

이때 유효시간의 단위는 "분"이므로 30분이 됩니다.


두번째는 session객체가 제공해주는 setMaxInactiveInterval()을 이용하는 방법입니다.

1
2
3
<%
    session.setMaxInactiveInterval(60*50);
%>

cs

이때 유효시간의 단위는 "초"이므로 3000초 즉, 50분이 되겠네요.

두 방법의 단위를 유의해야 되겠습니다.


지난번 큐넷사이트에서 경험했는데요 일정시간이 지나면 로그아웃이 되어버리더라구요.

이게 세션기술을 이용한 경우가 아닌가 싶습니다.