1. 程式人生 > >JAVA Web頁面F5重新整理重複提交form表單問題(後端Servlet重定向)

JAVA Web頁面F5重新整理重複提交form表單問題(後端Servlet重定向)

寫在前面:學習JAVA WEB,在提交新增表單後F5,form表單會不停的提交,困擾了我很久,也試過網上很多方法,可能是我使用方法不對,一直不成功。
其中程式碼為:

        int result = sf.add(stuno, pwd, stuname, stusex, age, tel, address);
             try {
                 if (result==1) {
                req.setAttribute("name", stuname);//為request物件新增引數   
                  // 使用req物件獲取RequestDispatcher物件
RequestDispatcher dispatcher = req.getRequestDispatcher("stulist.html"); // 使用RequestDispatcher物件在伺服器端向目的路徑跳轉 dispatcher.forward(req, resp); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

我在這裡使用的是request.getRequestDispatcher(“stulist.html”)方法
其中add為向資料庫中插入資料的操作,返回值為數字,成功返回1,失敗返回0
當返回1時,頁面即進行跳轉到學生列表的頁面stulist.html,試過頁面不允許快取,最終還是不行,下面提供我的解決方法以供參考。

int result = sf.add(stuno, pwd, stuname, stusex, age, tel, address);
             try {
                 if (result==1) {
                     resp.sendRedirect("stulist.html"
); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

使用了resp.sendRedirect(“stulist.html”)重定向,插入成功後立即傳送一個請求到前端,進行頁面的重定向,再重新整理就不會重複提交表單,問題解決。
後面查了一下Servlet重定向的工作原理
可以參考一下大神的文章:Servlet 重定向原理