2016-07-14 7 views
1

필자는 필터에서 이전 페이지로 리디렉션 할 수있는 방법을 이해하기 위해 여러 링크를 거쳤습니다. 내가 뭘하려고 오전웹 응용 프로그램의 서블릿 필터에서 이전 페이지로 리디렉션

하나 A.jsp 있습니다. 제출을 클릭하면 필터는 무언가를 검사하는 필터 중 하나로 이동하고 문제가 있으면 A.jsp에게 다시 전송합니다.

솔루션은 내가 페이지를 제출할 때 URL이 변경되기 때문에 내가 request.getHeader("referrer")을 사용할 수 없습니다

  1. 을 시도했다. 따라서 처음에는 작동하지만 이후에는 실패 할 것입니다.

  2. 요청 매개 변수로 전송 될 모든 JSP에 숨겨진 입력을 추가하면이를 필터로 보내서 다시 보낼 수 있습니다. 이것은 작동 할 수 있지만 jsp의 큰 숫자로 인해 내가 원하지 않는 모든 jsp 페이지에서 변경을 요구할 것입니다.

내가 누락 된 자료가 있습니까?

이 케이스를 처리하는 표준 방법은 무엇입니까?

+0

코드 A.jsp 및 필터, 감사 – jr593

+4

에 대한 추가하세요 @ jr593 : 질문을 읽었습니까? 귀하의 의견은 코드 블록없이 매 질문마다 올릴 가능성이있는 생각할 것도없는 무언가 같습니다. 요청한 정보가 현재의 형태로 질문에 답하는 데 얼마나 도움이되는지 정확히 알 수 없습니다. 질문에 관련성이없는 혼란을 더해 가면서 답을 구하기가 덜 매력적입니다. – BalusC

답변

1

더 나은 옵션이있을 수 있지만 다른 대답이없는 경우 자바 스크립트로 각 양식에 숨겨진 입력을 자동으로 추가 할 수 있습니다. 당신은 어떤이있는 경우 이런 식으로 뭔가 보이는 기능을하는 스크립트 태그를 추가 할 수 있습니다, 당신의 페이지들 사이에서 공유 콘텐츠를 JSP를-포함

window.onload = function(){ 
    for (var i = 0; i < document.forms.length; i++) 
    { 
     var form = document.forms[i]; 
     (function(form){ 
      form.addEventListener('submit', function(e){ 
       var element = document.createElement('input'); 
       element.setAttribute('type', 'hidden'); 
       element.setAttribute('name', 'returnpage'); 
       element.setAttribute('value', window.location); 
       form.appendChild(element); 
      });       
     })(form); 
    } 
}; 
+0

답해 주셔서 감사합니다. 그러나 이것은 URL에 종속적 인 request.getHeader ("referer")를 사용하는 것과 다소 비슷합니다. –