2016-07-14 3 views
1

Я просматриваю несколько ссылок, чтобы понять, как мы можем перенаправить на предыдущую страницу из фильтра.Перенаправление на предыдущую страницу из фильтра сервлета в веб-приложении

То, что я пытаюсь сделать

Существует один A.jsp. При нажатии кнопки submit он переходит к одному из фильтров, который что-то проверяет, и если есть проблема, он отправляет его обратно в A.jsp.

Solutions Я попытался

  1. Я не могу использовать request.getHeader("referrer") потому, что URL меняется, когда я отправить страницу. Таким образом, он будет работать в первый раз, но сработает после этого.

  2. Добавить скрытый ввод в каждый jsp, который будет отправлен как параметр запроса, и мы можем использовать это в фильтре для его отправки. Это может работать, но это потребует изменений на каждой странице jsp, которую я не хочу из-за большого количества jsps.

Есть ли что-нибудь, что мне не хватает?

Любой стандартный способ обработки этого случая?

+0

Пожалуйста добавьте код A.jsp, и ваш фильтр, благодаря – jr593

+4

@ jr593: Вы прочитали вопрос? Ваш комментарий кажется неуловимым коленом, который, вероятно, будет размещаться по каждому вопросу без блока кода. Я не вижу, как именно запрошенная информация помогла бы ответить на вопрос в его текущей форме. Это только добавило бы больше неуместного беспорядка в вопрос, сделав его еще менее привлекательным для ответа. – BalusC

ответ

1

Возможны лучшие варианты, но в отсутствие других ответов вы можете добавить скрытый ввод автоматически в каждую форму с помощью javascript. Если у вас есть какие-либо 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

Спасибо за ваш ответ, но это более или менее похоже на использование request.getHeader («referer»), который зависит от url. –

Смежные вопросы