0

我有一个名为 a 的 jsp 页面patient.jspForm它是一个弹出窗口。此表单是使用post方法提交的。一旦这个表单到达 servlet,就会发生类似下面的事情。

request.setAttribute("id",id);
RequestDispatcher dispatch = getServletContect().getRequestDispatcher("/patient.jsp");
dispatch.forward(request,response);

有一个大问题。一旦这被转发回patient.jsp,如果用户刷新网页,他之前输入表单的所有内容都将重新提交并保存在数据库中。

我们使用RequestDispatcher是因为我们必须从请求范围传递一个属性。知道如何解决这个问题吗?

4

1 回答 1

1

首先,您应该重定向而不是转发:

response.sendRedirect("patient.jsp");

确保相对路径正确。

从这里你有两个选择:

  1. 在请求中而不是在请求中设置属性session,然后可以在jsp中获取。当然你需要使用它来处理并行请求,所以属性的名称每次都应该是唯一的。
  2. 将属性作为 http get 参数发送(如果它是可序列化的):response.sendRedirect("patient.jsp?id=273");
于 2015-01-29T10:34:09.557 回答