刷新JSP表单将重新提交数据

时间:2015-01-29 10:20:53

标签: java jsp servlets web requestdispatcher

我有一个名为patient.jsp的jsp页面,其中Form是一个弹出窗口。此表单使用post方法提交。 一旦这个表单到达servlet,就会出现类似下面的内容。

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

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

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

1 个答案:

答案 0 :(得分:1)

首先你应该重定向而不是前进:

response.sendRedirect("patient.jsp");

确保相对路径正确。

从这里你有两个选择:

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