Короткое предисловие
Бывают такие ситуации, когда что-то (чаща всего простая мелочь) отказывается работать. В таком случае можно биться головой об стену, листать прошлогодние учебники, но в наше время люди поголовно лезут в интернет. Как тут не вспомнить “Don’t google, Moss. Don’t google, Moss” из сериала “IT Crowd”.
В общем, чтобы гуглилось легче и быстрее находилось заведу я небольшую категорию, куда буду постить короткие ответы на короткие вопросы, связанные с ИТ.
Содержание
Первый такая проблема: “response.sendRedirect() не работает в jsp”.
Ситуация такова – есть у нас следующей пример псевдо-jsp кода:
<%
if (!isLoged) {
response.sendRedirect("login.jsp");
}
User user = session.getAttribute("id");
user.setEmail = (bla-bla-bla);
(bla-bla-bla)
(дальше пошли куски кода в скриплете)
...
%>
В случае если строка с редеректом будет последней в скриплете, все будет нормально. Но из-за того, что дальше идет код, никакого return не происходит (такое возможно, кстати, и в случае всяких проверок if-else) sendRedirect() ничего не делает и вы остаетесь со своей любимой страницей наедине.
Выход из этой ситуации – сделать return вручную. Т.е. пишем:
<%
if (!isLoged) {
response.sendRedirect("login.jsp");
return; //Вот оно
}
User user = session.getAttribute("id");
user.setEmail = (bla-bla-bla);
(bla-bla-bla)
(дальше пошли куски кода в скриплете)
...
%>
И все работает.