表单重复提交

Posted ping157019-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表单重复提交相关的知识,希望对你有一定的参考价值。

原理:1、后端生成一个授权码,存好。并且把授权码传到前端。
    2、前端把授权码传到后端,授权码一致,删除后端存好的授权码。

 工具类:

public class TokenUtil {
    /**
     * 制造随机数
     * @return
     */
    public static String createToken(){
        String token = UUID.randomUUID().toString();
        return token;
    }

    /**
     * 设置随机数
     * 放入前端和后端session
     */
    public static void setToken(HttpServletRequest request, String profix){
        String token = createToken();
        String key = profix + "Token";
        //放入前端
        request.setAttribute(key,token);

        //放入session
        String sessionKey = profix.toUpperCase() + "_TOKEN_IN_SESSION";
        request.getSession().setAttribute(sessionKey,token);
    }

    /**
     * 验证随机数是否有效
     * @return
     */
    public static boolean checkToken(HttpServletRequest request, String profix, String token){
        //判断前缀是否为空
        if(profix==null){
            return false;
        }
        //判断session中的随机数是否有效
        String sessionKey = profix.toUpperCase() + "_TOKEN_IN_SESSION";
        String sessionToken = (String) request.getSession().getAttribute(sessionKey);
        if(sessionKey==null){
            return false;
        }
        if(sessionToken.equals(token)){
            return true;
        }
        return false;
    }

    /**
     * 删除session中的随机数
     */
    public static void removeAttribute(HttpServletRequest request, String profix){
        String sessionKey = profix.toUpperCase() + "_TOKEN_IN_SESSION";
        request.getSession().removeAttribute(sessionKey);
    }
}

技术分享图片

技术分享图片

技术分享图片

技术分享图片

以上几乎就是表单重复提交的过程和大部分代码
,有什么不对的,请大家指正。我是个新手!

 




以上是关于表单重复提交的主要内容,如果未能解决你的问题,请参考以下文章

提交后重置表单[重复]

客户端防表单重复提交和服务器端防重复提交

javaweb防止表单重复提交

重复使用代码而不提交表单两次

form表单重复提交问题

js阻止form表单重复提交