2016-07-14 12 views
1

Ich habe mehrere Links durchgelaufen, um zu verstehen, wie wir von Filter zu der vorherigen Seite umleiten können.Von Servlet-Filter in Web-Anwendung zur vorherigen Seite umleiten

Was ich versuche

Es zu tun, ist ein A.jsp. Beim Klicken auf submit geht es zu einem der Filter, der etwas überprüft und wenn es ein Problem gibt, sendet es es zurück an A.jsp.

Lösungen Ich habe versucht,

  1. ich nicht request.getHeader("referrer") verwenden, da URL ändert sich, wenn ich die Seite einreichen. So wird es zum ersten Mal funktionieren, aber danach wird es scheitern.

  2. Fügen Sie versteckte Eingabe in jedem JSP hinzu, das als Request-Parameter gesendet wird, und wir können das im Filter verwenden, um es zurückzusenden. Dies kann funktionieren, aber es wird Änderungen in jeder JSP-Seite erfordern, die ich wegen der großen Anzahl von jsps nicht will.

Gibt es etwas, was ich vermisse?

Jede Standardmethode, um diesen Fall zu behandeln?

+0

Bitte fügen Sie Code für A.jsp und Ihren Filter, dank – jr593

+4

@ jr593: Hast du die Frage gelesen? Dein Kommentar scheint ein unbedachter Knirscher zu sein, den man wahrscheinlich ohne Code auf jede einzelne Frage schreiben würde. Ich sehe nicht, wie genau die angeforderten Informationen helfen würden, die Frage in ihrer aktuellen Form zu beantworten. Es würde der Frage nur noch irrelevanteres Durcheinander hinzufügen, was es noch weniger attraktiv macht zu antworten. – BalusC

Antwort

1

Möglicherweise gibt es bessere Möglichkeiten, aber in Ermangelung anderer Antworten könnten Sie die versteckte Eingabe automatisch zu jedem Formular mit Javascript hinzufügen. Wenn Sie irgendwelche haben jsp-includes für Inhalte unter Ihren Seiten geteilt, könnten Sie ein Skript-Tag mit einer Funktion hinzufügen, die etwa wie folgt aussieht:

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

Vielen Dank für Ihre Antwort, aber das ist mehr oder weniger ähnlich zu request.getHeader ("referer"), die von URL abhängig ist. –

Verwandte Themen