session实现防止重复提交,以及验证详解编程语言

参考文档

1.生成Token的参考文档.http://www.cnblogs.com/TianFang/p/3180899.html

2.主要参考文档.http://www.cnblogs.com/xdp-gacl/p/3859416.html

实验的思路在js页面用在一个循环中执行多次post请求,然后看后来的输出

相关代码

controller里面

@RequestMapping(value = "/savebook") 
    public void saveBook(HttpServletRequest request,HttpServletResponse response) 
    { 
        //logger.info("into saveBook"); 
        boolean isrepeatSubmit = bookService.isRepeatSubmit(request); 
        //如果是重复提交应该如何处理,不加入数据就可以了不要return null,return会使页面报异常 
        if(isrepeatSubmit) 
        { 
            logger.info("is repeat submit"); 
        } 
        else 
        { 
            logger.info("first submit"); 
        } 
    }

isRepeatSubmit方法

@Override 
    public boolean isRepeatSubmit(HttpServletRequest request) 
    { 
        String clientToken = request.getParameter("token"); 
        String serverToken = (String) request.getSession().getAttribute("token"); 
        if (clientToken == null) 
        { 
            return true; 
        } 
        if (serverToken == null) 
        { 
            return true; 
        } 
        if(!serverToken.equals(clientToken)) 
        { 
            return true; 
        } 
        request.getSession().removeAttribute("token"); 
        return false; 
    }

上面的代码一定要注意最后在返回false之前 ,要把token从session中去除

js中的代码

<script type="text/javascript"> 
window.onload = function(){ 
    //alert("123"); 
    //var saveUrl = "http://localhost:8080/springMVC/savebook"; 
    //${basePath}book_save" 
    var saveUrl = '${basePath}savebook'; 
    var i= 0; 
    for(;i<5;i++) 
        { 
        sendSaveRequest(saveUrl); 
        } 
} 
 
function sendSaveRequest (saveUrl){ 
    $.post( 
            saveUrl, 
            {"token":$("#token").val()}, 
            function() 
            { 
                return; 
            }, 
             
            "text" 
        );     
     
}

十二月 12, 2015 3:16:16 下午 app05a.controller.BookController saveBook 信息: first submit 十二月 12, 2015 3:16:16 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:16:16 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:16:16 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:16:16 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:31:18 下午 app05a.controller.BookController saveBook 信息: first submit 十二月 12, 2015 3:31:18 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:31:18 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:31:18 下午 app05a.controller.BookController saveBook 信息: is repeat submit 十二月 12, 2015 3:31:18 下午 app05a.controller.BookController saveBook 信息: is repeat submit

上面是运行结果

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15393.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论