2009-08-24 4 views
0

jsp를 사용하여 응용 프로그램을 작성하고 브라우저에서 항상 실행되는 URL을 캐시하므로 브라우저에서 페이지를 새로 고칠 때 작업이 실행됩니다. 다시. 예 : "> 전송; 내가 링크를 클릭하면 페이지를 새로 고침하고이 작업이 다시 실행됩니다. 또한이 문제를 피하기 위해 사용해야합니다. 정말로 편리합니다.jsp에서 새로 고침 할 때 다시 실행을 방지하는 방법

어느 하나가 더 나은 솔루션을? 어떤 제안을 이해할 수있을 것이다. 사전에 감사.

답변

0

이 솔루션은 Internet Explorer에서 작동합니다.

<script type="text/javascript"> 
    document.onkeydown = function(){ 
    if(window.event && window.event.keyCode == 116){ // Capture and remap F5 
     window.event.keyCode = 505; 
    } 
    if(window.event && window.event.keyCode == 505){ // New action for F5 
     return false; // Must return false or the browser will refresh anyway 
    } 
} 
</script> 
1

당신은 일반적으로 첫 번째 요청에 생성에 저장되어있는 숨겨진 양식 변수를 가지고 세션을 임의의 숫자로 생성하십시오.

그런 다음 제출시이 숨겨진 필드를 확인하고 세션 변수를 확인하고 일치하는 경우 처리하고 세션 변수를 제거하십시오.

따라서 back 키를 누르면 폼에서 동일한 변수가되지만 세션에서 제거되므로 대소 문자를 쉽게 감지 할 수 있습니다.

0

토큰으로 알려진 것을 사용할 수 있습니다. 양식 제출시 토큰 번호를 숨겨진 양식 요소로 포함하십시오. 페이지를 생성하는 동안이 임의의 토큰을 SESSIONS (배열)에 추가하십시오. 이제 폼 제출시, SESSION 배열에 랜덤 토큰이 있는지 확인하고, 그렇다면 제거하고 계속하십시오. 아니면 오류를 던집니다.

관련 문제