0
我有一個JSP(AddDocument.jsp)有以下形式:刷新JSP和Servlet後提交
<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>
當它提交調用servlet(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讀取並顯示給用戶。
我的問題是,這種方式瀏覽器認爲它將進入一個新的頁面,並且其歷史記錄增加(例如,如果我從X.jsp中添加AddingDocument.jsp,在表單中插入10次無效名稱並重定向到同一個頁面出現錯誤,我將不得不返回10次才能到達X.jsp)。
我想只能返回1次才能到達X.jsp,所以我需要刷新一下JSP而不是重定向,但是對請求和響應的效果相同(即使手動刷新也不會有新的提交這一頁)。 我該怎麼做?