一种表单重复提交处理方法

表单重复提交处理:

1. 在生成表单时执行如下:

   session.setAttribute("forum_add", "forum_add");

2. 提交处理时作如下判断

        if (isRedo(request, "forum_add")) {
            //提示重复提交,作相关处理
        }

相关函数:

    /**
     * 判断是否为重复提交
     * 1,检查Session中是否含有指定名字的属性
     * 2,如果Session中没有该属性或者属性为空,证明已被处理过,判断为重复提交
     * 3,否则,证明是第一次处理,并将属性从Session中删除。
     * @param key String
     */
    private boolean isRedo(HttpServletRequest request, String key) {
        String value = (String) request.getSession().getAttribute(key);
        if (value == null) {
            return true;
        }
        else {
            request.getSession().removeAttribute(key);
            return false;
        }
    }

 

时间: 2024-12-30 23:36:18

一种表单重复提交处理方法的相关文章

php 解决表单重复提交实现方法引见

  php 解决表单重复提交实现方法介绍 重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦. 例1 代码如下 复制代码 /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为

PHP使用token防止表单重复提交的方法_php技巧

本文实例讲述了PHP使用token防止表单重复提交的方法.分享给大家供大家参考,具体如下: <?php /* * PHP使用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION

解决php表单重复提交实现方法_php技巧

重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦. <?php /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........

JSP使用自定义标签防止表单重复提交的方法_JSP编程

本文实例讲述了JSP使用自定义标签防止表单重复提交的方法.分享给大家供大家参考.具体如下: 1. 编写servelt: package cn.itcast.apsliyuan.web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletReques

php 避免form表单重复提交的方法

比如下面的情况就会导致表单重复提交: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 网页被恶意刷新. 下面是几种解决的方法: 一:利用js设置按钮点击后变成灰色 $(document).ready(function(){   $(input:submit).click(){       setTimeout(function(){obj.disabled=true;},100)   }; }

ThinkPHP 防止表单重复提交的方法_php技巧

然而有一种情况,是防止不了的: 用户提交表单以后,点击浏览器后退按钮返回表单页面,这个时候浏览器会直接从缓存中取出页面,因此token验证一定是通不过的. 网上有许多种办法可以绕过这个问题,比如用location.replace()方法来替换当前历史记录,但是这样仍然有瑕疵.极端的情况,若用户在页面间切换多次,那么多点几次后退按钮很可能又回到了上一个表单页面. 解决办法是在http头中设置Cache-Control: no-cache, no-store.然而我尝试了无论是在页面head中添加

如何防止表单重复提交

表单重复提交是在多用户Web应用中最常见.带来很多麻烦的一个问题.有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 几种防止表单重复提交的方法 禁掉提交按钮.表单提交后使用Javascript使提交按钮disable.这种方法防止心急的用户多次点击按钮.但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了. 我之前的文章曾说过用一些

JSP学习之------&amp;gt;客户端防表单重复提交和服务器端session防表单重复提交

1.什么叫表单重复提交:      所谓表单重复提交,是指用户通过多次点击提交按钮或多次刷新表单提交页面等造成用户表单重复提交的现象 2.表单重复提交有哪些情况:      (1)用户在程序提交表单的时间段里多次提交表单      (2)重复刷新提交后的表单      (3)用户点击浏览器回退按钮,然后再次提交 3.如果解决表单重复提交:     (1)方法1:客户端防表单重复提交:  一般通过js代码防止第一种情况的发生,对于第二种和第三种的情况很难避免,并且稍微有经验的用户可以通过去掉页面j

php解决和避免form表单重复提交的几种方法_php技巧

前言 为什么要避免form表单被重复提交呢?因为我们不想让我们的服务器重复处理没必要的数据,同时我们也是避免我们的数据库产生重复的数据,避免表单重复提交也是让我们的网站更安全的一种表现. 先看一下有哪些情况下回导致表单重复提交呢,知道哪些情况下可能会出现表单重复提交就可以从根源处理表单重复提交的情况了. 下面的情况就会导致表单重复提交:       点击提交按钮两次.       点击刷新按钮.       使用浏览器后退按钮重复之前的操作,导致重复提交表单.       使用浏览器历史记录重复