以下是我的表单将数据发布到servlet的场景,该servlet反过来对db进行更改并将对象附加到request属性并转发到JSP页面。
现在的问题是,如果单击JSP上的刷新按钮,则进程循环返回,因为它是转发,servlet重新输入数据。我实际上可以通过重定向来解决这个问题,而不是从servlet转发到jsp页面,并将对象作为属性附加到会话而不是请求。
但我想知道是否有更好的方法来做到这一点?
我不想存储会话中遇到的所有内容,有没有办法知道这是否是刷新事件?
答案 0 :(得分:0)
可以使用GET or POST
发布数据。如果GET
方法已刷新which is idempotent
,则为browser automatically makes request to the server
。
但是,如果方法是POST
,which is non-idempotent
,the 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。