【问题标题】:Refreshing JSP from servlet after submit提交后从 servlet 刷新 JSP
【发布时间】: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


    【解决方案1】:

    您需要使用 AJAX 而不是普通的表单提交。除了不影响浏览器历史之外,它还应该提供当今大多数用户所期望的“更好”的用户体验。

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 2013-11-18
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 2020-02-06
      • 2013-08-26
      相关资源
      最近更新 更多