2016-05-09 4 views
0

У меня есть HTML-форма в интерфейсе администратора для моего webapp. Это большая форма, поэтому я опустил элементы ввода, но соответствующие теги выглядеть следующим образом:Tomcat 8 перенаправление после HTML-формы submit

<form id="config" action="updateConfig" method="POST"> 
    <input type="submit" value="Save configuration" name="submit1"/> 
... 
... 
</form> 

Это размещается на http://servername:port/webapp/admin и нажав кнопку следует отправить форму http://servername:port/webapp/admin/updateConfig и обновите страницу (т.е. перезарядки http://servername:port/webapp/admin)

Это прекрасно работает с Tomcat 7 во всех комбинациях браузеров.

Однако с Tomcat 8 он ведет себя по-другому. При использовании Firefox, Chrome и Safari приложение формы работает, но браузер затем пытается перенаправить на http://servername:port/webapp/admin/updateConfig. Он работает по-прежнему с IE/Edge

Я искал документацию Tomcat 8, но не могу найти никаких явных изменений, которые могли бы привести к такому поведению. Любая помощь будет оценена по достоинству.

Отчет об ошибке можно найти здесь: https://github.com/Reading-eScience-Centre/edal-java/issues/54#issuecomment-212529593, в котором приводится дополнительная информация о том, как происходит перенаправление.

+0

Можете ли вы сделать протокольное след того, что происходит и после этого? Как выглядит ваш код? –

ответ

0

ОК, после некоторых экспериментов я понял это. Проблема в том, что веб-приложение посылает пустую переадресацию:

response.sendRedirect("") 

В Tomcat < = 7, который был перенаправление http://servername:port/webapp/admin (т.е. страница, которая представляется пост), тогда как в Tomcat 8 он проходит лечение по-другому. Из заголовков кажется, что Tomcat 7 перехватывал перенаправление и явно вставлял полный URL в заголовок «Location», тогда как Tomcat 8 просто отправляет пустое место, которое интерпретируется по-разному в разных браузерах. Поэтому

Решение было изменить переадресацией:

response.sendRedirect("./") 

, который работает как с Tomcat 7 и Tomcat 8.

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