У меня есть JSP (AddDocument.jsp) со следующей формой:
<form action=" ${pageContext.request.contextPath}/project?to=submitAdd&idProject=${param.idProject}" method="post" name="form">
<div>Name:</div>
<input type="text" name="name" /><br /> <br />
<input type="submit" value="Add document" />
</form>
При отправке вызывается сервлет (ProjectManager), который выполняет следующие действия:
private void addDocumento(HttpServletRequest request, HttpServletResponse response) {
HttpSession session=request.getSession();
// elaborating...
session.setAttribute("addingResult", "Document added");
// or error if an exception is caught
redirect(request.getContextPath()+"/project?to=add&idProject="+idProject,request,response);
}
Это перенаправление на ту же страницу после установки атрибута сеанса, который будет прочитан JSP и показан пользователю.
Моя проблема в том, что браузер думает, что он переходит на новую страницу и его история увеличивается (например, если я иду в AddingDocument.jsp из X.jsp, вставляю 10 раз неверное имя в форму и перенаправляюсь на ту же страницу с ошибкой, мне придется вернуться 10 раз, чтобы прийти к X.jsp).
Я хочу иметь возможность вернуться только один раз, чтобы прийти к X.jsp, поэтому мне нужно некоторое обновление моего JSP вместо перенаправления, но с тем же эффектом на запрос и ответ (что нет новой отправки, если я вручную обновлю страницу).
Как я могу это сделать?