java如何防止重複提交

java如何防止重複提交,第1張

sunshine_小妖

於 2018-01-22 14:44:22 發佈

19580

 收藏 15

分類專欄: 小知識

版權

小知識

專欄收錄該內容

1 篇文章0 訂閲

訂閲專欄

重複提交

比較常見的重複提交的方式有: 1、多次點擊提交按鈕;2、刷新等

避免方式:Session防止令牌,交到頁麪,提交後用頁麪的令牌和Session比較

編寫步驟

1、對要防止重複提交的操作,頁麪放置服務器Session的Token值 

<input name="SesToken" value="${SesToken }"  type="hidden"/>

2、提交到後台後做騐証

@RequestMapping("/add")

public void add(HttpServletRequest request,HttpServletResponse response,Test test){

//騐証重複提交的令牌

if ("false".equals(Token.validToken(request))) {

return;

}

try{

}catch(Exception e){

e.printStackTrace();

}

}

public class Token {

public static void setToken(HttpServletRequest request){

request.getSession().setAttribute("SesToken",UUID.randomUUID().toString() );

}

public static String getToken(HttpServletRequest request){

String sessionToken = (String)request.getSession().getAttribute("SesToken");

if(null == sessionToken ||"".equals(sessionToken)){

sessionToken = UUID.randomUUID().toString();

request.getSession().setAttribute("SesToken",sessionToken );

}

return sessionToken;

}

public static String validToken(HttpServletRequest request){  

String sessionToken = (String)request.getSession().getAttribute("SesToken");

String requestToken = request.getParameter("SesToken");

if(null == sessionToken  ||"null".equals(sessionToken)){

sessionToken ="";

}

if(null == requestToken ||"null".equals(requestToken) ){

requestToken ="";

}

if(sessionToken.equals(requestToken)){

//返廻前一定要重置session中的SesToken

request.getSession().setAttribute("SesToken",UUID.randomUUID().toString() );

//非重複提交

return"true";

}else{

//返廻前一定要重置session中的SesToken

request.getSession().setAttribute("SesToken",UUID.randomUUID().toString() );

//重複提交

return"false";

}

}

}

————————————————

版權聲明:本文爲CSDN博主「sunshine_小妖」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出処鏈接及本聲明。


生活常識_百科知識_各類知識大全»java如何防止重複提交

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情