Есть сервлет из которого делаю redirect на другой html.
case COMPANY:
CompanyFacade companyFacade = (CompanyFacade) CouponSystem.getInstance().login(username, password, type);
if(companyFacade != null){
HttpSession session = request.getSession();
session.setAttribute(COMPANY, companyFacade);
response.sendRedirect("./html/companySPA_page.html");
}else{
//1 response.getWriter().println("<script type='text/javascript'>alert('Password is incorrect');</script>");
//2 response.sendRedirect("./index.html");
}
break;
В случаи не верного логина пытаюсь вызвать функцию alert с сообщением о не правельном пароле и после чего перенаправить на туже страницу (либо если есть вариант остаться на этой же). Так вот строка под номером //1 работает если после нее нет редайректа. Вместе эти две строки не работают, не могу понять почему.
И так благодаря помощи Grundy я нашел ответ на свой же вопрос. Объясню почему это происходит и как можно это решить:
Первая строка генерит код JavaScript и посылает его на сторону клиента на выполнение, Вторая стока посылает redirect на некий HTML. Браузер же в свою очередь получив статус redirect не смотрит на тело ответа в котором как раз и записан код JavaScript.
Теперь, одно из решений этой проблемы это сделать redirect на стороне клиента, т.е. с помощью JavaScript, добавив атрибут location
response.getWriter().println("<script type='text/javascript'>alert('Password is incorrect');location='path/to/page'</script>");
Таким образом мы вызываем alert в браузере и остаемся на той же странице.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости