2014-01-11 4 views
0

다음 조건을 피하십시오. 서블릿을 실행 중입니다. 이 세션은 내 타임 아웃 (WEB.XML) 기간 후 브라우저에서 만료됩니다. 이 타임 아웃을 얻은 후에는 브라우저에서이 링크를 다시로드하여이 서블릿을 활성화해야합니다. 나는 다시 링크를 다시로드하고 싶지 않다. 타임 아웃 후에 새로운 세션을 만들어야한다.현재 서블릿 세션이 만료되면 새로운 세션을 만들고 싶습니다.

답변

0

올바른 해결 방법은 (session-timeout)을 web.xml으로 확장하는 것입니다.

브라우저의 클라이언트, JS 응용 프로그램은 서버에 연결되어 아직 작동 중임을 알리십시오.

+0

대신 제한 시간이 초과되었습니다. 나는 dopost/doget을 다시 호출하여 프로그램을 자동 새로 고치고 싶다. 만약 내가 dopost/doget을 추가해야한다면, 어디서 추가해야합니까? 어느 부분에서 다시 호출해야하는지 (새 세션을 만들 때) – Arunjoshi

+0

나는 이것이 불가능하다고 생각한다. 귀하의 클라이언트 (브라우저)가이 케이스를 처리해야하며 서버는 필요하지 않습니다. – MariuszS

0

시간 초과는 세션이 서버에 의해 종료되기 전에 비활성 기간입니다. 활동이없는 경우에도 세션을 활성 상태로 유지하려면 비활성 시간 초과를 연장 할 수 있습니다.

또는 몇 분마다 서버에 하트 비트를 보내는 자바 스크립트 AJAX 킵 얼라이브를 작성할 수 있습니다. 이 keepalive를 수신하고 간단한 응답을 되돌리기위한 간단한 전용 서블릿을 작성할 수 있습니다. 하트 비트는 활동으로 간주되어 세션을 활성 상태로 유지합니다.

This post은 자바 스크립트의 예를 제공합니다 (질문은 C#과 관련되어 있지만 중요하지 않음).

관련 문제