내 요구 사항은 사용자가 웹 페이지에서 어떤 활동도 수행하지 않을 때 사용자 세션이 x 초 후에 시간 초과된다는 팝업 메시지를 사용자에게 알리는 것입니다.Java EE에서 세션 시간 초과에 대해 사용자에게 알립니다.
이 요구 사항에 추가하면 팝업에서 값 x 초를 동적으로 감소시킵니다.
내가 사용하는 환경은 Java EE입니다.
내 요구 사항은 사용자가 웹 페이지에서 어떤 활동도 수행하지 않을 때 사용자 세션이 x 초 후에 시간 초과된다는 팝업 메시지를 사용자에게 알리는 것입니다.Java EE에서 세션 시간 초과에 대해 사용자에게 알립니다.
이 요구 사항에 추가하면 팝업에서 값 x 초를 동적으로 감소시킵니다.
내가 사용하는 환경은 Java EE입니다.
HttpSession#getMaxInactiveInterval()
및 setTimeout()
을 사용하십시오. 모든 클라이언트 활동 (폴링)에 대한 시간 초과를 연기하고 싶지 않으면 Ajax를 사용할 필요가 없습니다.
기본 예 :
<script>
var secondsBeforeExpire = ${pageContext.session.maxInactiveInterval};
var timeToDecide = 15; // Give client 15 seconds to choose.
setTimeout(function() {
alert('Your session is about to timeout in ' + timeToDecide + ' seconds!')
}, (secondsBeforeExpire - timeToDecide) * 1000);
</script>
당신이 HTML DOM 트리를 통해 컨텐츠를 제어 할 수있어서, 당신은 사업부와 오버레이가 필요합니다 기본 alert()
대신 다음, 마술 메시지 내부의 시간을 감소하기 동적으로 텍스트를 변경하려면 1 초에 다른 setTimeout()
을 사용하십시오.
EL이 작동하려면이 스크립트가 JspServlet
에 의해 제공되어야합니다. 따라서 JSP 페이지의 HTML <head>
에 스크립트를 넣거나 모든 JS를 별도의 *.js
파일에 포함하려면 JspServlet
에 *.js
요청을 처리해야합니다.
자바/자바 EE는 클라이언트 측 (자바 스크립트 사용)에서 처리해야하기 때문에 여기서는 도움이 될 것 같지 않습니다. 내가 생각할 수있는 한 가지 해결책은 사용자에게 서버의 시간 초과가 발생하기 몇 분 전에 알려주는 일종의 타이머를 설정하는 것입니다. 이것에 대해 인터넷 검색을하는 동안
, 나는 에릭 Pascarello의 Update User's Session with AJAX 블로그 게시물 (그리고 리로디드 버전 Updating User Session with Ajax - Round 2) 바로 이러한 솔루션에 대해 설명합니다 (세션을 업데이트하기XMLHttpRequest
를 사용) 발견했다. 그의 Ajax 세션 관리 스크립트는
here입니다.
BTW 아무 링크도 작동하지 않습니다. –
스크립트에 대한 링크는 괜찮습니다. 다른 두 가지는 웹 아카이브에서 찾을 수 있습니다. https://web.archive.org/web/20081203190028/http://radio.javaranch .com/pascarello/2005/10/25/1130246930301.html –
정말 도움이되는 제안 사항입니다. 감사. –
맞습니다. AJAX에 대한 엄격한 필요는 없지만 세션을 업데이트하기 위해'XMLHttpRequest'를 사용하는 것에 대한 좋은 점은 사용자가 타임 아웃을 피하기 위해 이동할 필요가 없다는 것입니다. 예를 들어 양식을 작성할 때이 방법이 유용 할 수 있습니다. –
"JS를 모두 별도의 * .js 파일에 넣으려면 JspServlet에서 * .js 요청을 처리하게해야합니다."- pls로 설명 할 수 있습니까? JS에 익숙하지 않습니다. jsp 페이지가 많기 때문에이 함수를 별도의 * .js 파일에 넣어야합니다. 이런 식으로 작동하려면 어떻게해야합니까? @BalusC –