【发布时间】:2012-01-01 01:57:42
【问题描述】:
我有一个 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>
提交后,它会调用一个 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 而不是重定向,但对请求和响应具有相同的效果(不是如果我手动刷新页面,则新提交)。
我该怎么做?
【问题讨论】:
标签: jsp servlets redirect refresh jboss5.x