2012-02-15 7 views
2

20 초의 세션 타임 아웃을 가진 여러 JSP 파일이있는 웹 응용 프로그램을 작성하고 있습니다. 하지만 특정 jsp에서 나는 액션을 호출 할 때 세션 타임 아웃을 더 크게 설정해야합니다. 내가 사용 request.getSession().setMaxInactiveInterval(1800);JSP - jsp 페이지를 종료 할 때 알리기

다음

하나는 내가 그것에 세션 제한 시간을 다시 종료있어 작업 원래 값으로입니다 : request.getSession().setMaxInactiveInterval(600);

그러나 응용 프로그램을 실행하고, 하나를 작업을 호출 할 때이 가까운 세션을 종료 ' 내가 설정 한 시간이 이미 지나갔 기 때문에.

내가 알고 싶은 것은 jsp를 종료 할 때 아무런 방법이 없다는 것입니다. 브라우저를 닫거나 탭 창을 닫지 마십시오. 예를 들어, 다른 jsp?를 호출합니다.

다른 방법으로 세션 시간 초과를 다시 설정하여 작업이 끝날 때 세션이 닫히지 않도록 할 수 있습니까?

깜박했습니다. 작업은 부울의 내부에 있으며 조건이 충족되면 호출 될 때 작업입니다. 그리고 액션을 호출하기 전에 세션 타임 아웃을 변경하고 액션이 끝나는 시간을 재설정하는 코드를 넣습니다.

for(int i = 0; i < totalreg; i++) { 
    if (condition) { 
     request.getSession().setMaxInactiveInterval(1800); 
     process(); 
     request.getSession().setMaxInactiveInterval(600); 
    } 
} 

감사합니다.

+0

다른 jsp로 이동할 때 해당 권한을 명시 적으로 코딩합니까? 특정 코드에서이 줄을 추가하지 않으시겠습니까? – kosa

답변

1

임의의 페이지를 연속적으로 새로 고침하면 보이지 않는/매우 작은 iframe 만 있으면됩니다. 또는 그 목적으로 AJAX를 사용할 수도 있습니다. 이렇게하면이 페이지가 열려있는 한 세션이 절대로 종료되지 않습니다.

작업 진행 상황을 비동기 적으로 표시하는 것도 좋은 방법입니다.

+0

답변을 주셔서 감사합니다.하지만 보이지 않는 iframe을하고 있습니다. 수신 할 수 없습니다. 아약스 사용에 관해서, 어떻게 할 수 있습니까? 나는 이것이 단지 베겐 니르라고 말해야 만합니다. –

+0

세션을 유지하기 위해 새로 고침 iframe을 사용하는 것이 좋지 않은 이유는 무엇입니까? AJAX는별로 다르지 않을 것이고 아마도 그들이 무엇이든간에 똑같은 문제로 이어질 것입니다. – Simon

+0

더 많은 정책 회사의 기능입니다. –

관련 문제