使用REFRESH防止多个过帐

时间:2012-06-07 03:36:23

标签: jsp servlets

以下是我的表单将数据发布到servlet的场景,该servlet反过来对db进行更改并将对象附加到request属性并转发到JSP页面。

现在的问题是,如果单击JSP上的刷新按钮,则进程循环返回,因为它是转发,servlet重新输入数据。我实际上可以通过重定向来解决这个问题,而不是从servlet转发到jsp页面,并将对象作为属性附加到会话而不是请求。

但我想知道是否有更好的方法来做到这一点?

我不想存储会话中遇到的所有内容,有没有办法知道这是否是刷新事件?

1 个答案:

答案 0 :(得分:0)

可以使用GET or POST发布数据。如果GET方法已刷新which is idempotent,则为browser automatically makes request to the server

但是,如果方法是POSTwhich is non-idempotentthe browser will raise a popup asking the user to really post the data and this may repeat the operation again

如果您正在使用GET,那么我建议将其更改为POST。

但最好的解决方案是POST + REDIRECT + GET。