JAVA Web頁面F5重新整理重複提交form表單問題(後端Servlet重定向)
阿新 • • 發佈:2019-01-29
寫在前面:學習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 重定向原理