javaweb中防止表單的重複提交(隱藏域+Session)


一、在表單提交也面:

1)生成一個隨機值(token); 

String tokenValue = new Date().getTime()+" ";

2)將token值放入到Session屬性中;

session.setAttribute("token",tokenValue);

3)將token值放入到隱藏域的value中;

<input type="hidden" name="token" value="<%=tokenValue%>" />

二、在Servlet接受頁面:

1)獲取Session和隱藏域中的token值;

HttpSession session = request.getSession();

Object token = session.getAttribute("token");


String tokenValue = request.getParameter("token");

2)比較兩個值時候一致:若一致,受理請求,且把Session域中的token屬性清除;若不一致,則直接相應提示頁面“重複提交”;

if(token != null && token.equals(tokenValue){

session.removeAttribute("token");

}else{

response.sendRedirect(request.getContextPath()+"/token/token.jsp");

return;

}


總體思路:產生一個隨機值,分別給Session和表單值,同時提交給Servlet;

servlet判斷是否是首次提交,如果是,清楚Session值,表示提交成功;如果第二次提交,Session中就沒有值,所以判斷爲假,則提示重複提交。


發佈了35 篇原創文章 · 獲贊 15 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章