jsp forward / sendredirect问题

时间:2015-02-27 04:12:39

标签: java jsp

给出两个jsp' myFirstJsp.jspmySecondJsp.jsp

myFirstJsp.jsp从另一个表单接收提交参数,在数据库中存储一些值,如果一切都成功,则转发到mySecondJsp.jsp,发送一些这样的参数:

<jsp:forward page="mySecondJsp.jsp">
<jsp:param name="param1" value='<%=request.getParameter("param1")%>'/>
<jsp:param name="param2" value='<%=request.getParameter("param2")%>'/>
</jsp:forward>

一切正常,但如果用户按F5或刷新页面,则会发生异常,因为URL仍然指向&#34; myFirstJsp.jsp&#34;,因此基本上会发生重复的插入异常,我想阻止这一点。

可用的另一个选项是使用sendRedirect而不是转发,如下所示:

response.sendRedirect( "mySecondJsp.jsp?param1=somevalue&param2=somevalue" );

然而,在这种情况下,参数对用户是可见的,虽然通常他们不会改变它们,但我也需要防止这种情况。

有没有办法避免这两种情况?

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令在myFirstJsp.jsp中设置请求参数并在mySecondJsp.jsp上获取它:

request.setAttribute("param_name","param_value");
request.getAttribute("param_name");

类似地,您可以将值放在会话中。

但是,如果你想防止表中的记录重复,那么你可以在数据库中编写一个程序来处理这个问题。