본문 바로가기
ETC.../JSP

(JSP & ASP) 세션 유지

by izen8 2009. 10. 31.
반응형

ASP(IIS)나 JSP(Tomcat)에서 제공하는 세션은 기본적으로 정해진 시간이 있습니다.

 

Default로 사용하실 경우

아마도 ASP의 경우 20분 / JSP의 경우 30분 동안 아무런 페이지 이동이 없을 경우 세션이 끊어지게 됩니다.

주로 로그인을 할때 세션을 많이 사용하는데.. 이렇게 되면 자동으로 로그아웃이 되어 버립니다.

 

혹자는 이렇게 로그아웃 되는 것을 원치 않을 것이며,

이 문제의 처리 방법은..

 

ASP의 경우,

Session.Timeout = 60 (60분동안 세션 유지..)

로그인 체크하는 페이지 등 세션 변수를 생성하는 곳에 넣어주시면 됩니다.

혹은 global.asa 에 넣어주시면 됩니다.

 

JSP의 경우..

Program Files의 Tomcat 폴더에 conf라는 폴더를 보시면 web.xml 이란 파일이 있습니다.

여기서 session-config 부분을 찾아보시면 session-timeout을 설정 할수 있고 단위는 분단위 입니다.
해보질 않아서 소수점으로 초단위를 표현할수 있는지는 잘 모르겠네요..

 

그리고 또 다른 방법은.. ASP와 JSP 모두 적용이 가능하며, 눈에 보이지 않는 프레임을 두어

일정시간 마다 페이지를 Refresh 해주는 방법입니다.

 

만약 초기 페이지가 login.asp라면..

 

login.asp 페이지의 이름을 login_1.asp로 바꾸고..

새로운 login.asp를 만들어 프레임 셋을 만들어 줍니다.

 

<!--login.asp-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>Untitled Document</title>
</head>

<frameset rows="*,0" cols="*" framespacing="0" frameborder="no" border="0">
  <frame src="login_1.asp" name="mainFrame" id="mainFrame" title="mainFrame" />
  <frame src="refresh.html" border="1" name="bottomFrame" scrolling="No" id="bottomFrame" title="bottomFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>


 

그리고.. refresh.html이라는 페이지를 다음과 같이 만들어줍니다.

<!--refresh.html-->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">
<meta http-equiv="Refresh" Content="600"> <!-- REFRESH 를 5분에 한 번씩 -->
<title>Refresh 프레임</title>
</head>
<body>
This is page for refresh!!
</body>
</html>

 

이렇게 되면 refresh.html 페이지는 눈에 보이지 않지만..

5분마다 페이지를 reload하여 항상 세션을 유지시켜 주는 역할을 하게 됩니다.

 

 

반응형

댓글