1.新建兩個(gè)文件
index.jsp -- 表單頁(yè)面
success.jsp -- 結果提示頁(yè)面
2.代碼分別如下:
3.新建TokenServlet,代碼如下
4.運行index.jsp,輸入用戶(hù)名,點(diǎn)擊提交
5.正常跳轉結果頁(yè)面
6.但當我在這個(gè)頁(yè)面點(diǎn)擊刷新的時(shí)候,出現如下提示
7.點(diǎn)擊重試,發(fā)現又一次調用了servlet,這就是一個(gè)重復提交
8.多刷新幾次,注意看URL地址,現在仍然是servlet
9.以前說(shuō)重定向可以解決表單重復提交的問(wèn)題,我們修改Servlet代碼如下
10.再次測試,發(fā)現重定向到了success.jsp ,再點(diǎn)擊刷新的話(huà)也不會(huì )出現重復提交了
11.那問(wèn)題解決了么?再看,當我點(diǎn)擊瀏覽器中的返回,然后再點(diǎn)擊提交,如此反復,仍然在重復調用Servlet,這也是重復提交
12.現在修改Index.jsp
13.修改servlet代碼
14.新建token文件,代碼如下
15.在瀏覽器中測試(注,這里如果再使用Eclipse自帶瀏覽器的話(huà),會(huì )出現緩存問(wèn)題,所以使用正常的瀏覽器火狐或者IE)
16.hidden中的token 和session中的token是相同的
17.當點(diǎn)擊瀏覽器中的后退按鈕,再次進(jìn)行操作,發(fā)現不能重復提交
18.這是因為session中的token已經(jīng)被移除掉了
19.而返回后刷新頁(yè)面,相當于新開(kāi)一個(gè)index.jsp 重新獲取token 賦值給session,這時(shí)可以正常提交了
聯(lián)系客服