给出两个jsp' myFirstJsp.jsp
,mySecondJsp.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¶m2=somevalue" );
然而,在这种情况下,参数对用户是可见的,虽然通常他们不会改变它们,但我也需要防止这种情况。
有没有办法避免这两种情况?
答案 0 :(得分:0)
您可以使用以下命令在myFirstJsp.jsp中设置请求参数并在mySecondJsp.jsp上获取它:
request.setAttribute("param_name","param_value");
request.getAttribute("param_name");
类似地,您可以将值放在会话中。
但是,如果你想防止表中的记录重复,那么你可以在数据库中编写一个程序来处理这个问题。