java 代码防重复触发
2023-01-10阅读(1054)
问:在java jsp中怎么处理用户多次点击提交按钮造成数据重复
- 答:按钮点击一次之后,设置按钮不可点
- 答:很多方式,可以用token,可以用JS控制
- 答:token 机制
你搜一下吧
问:java 如何隔一段时间自动重复触发一个按钮动作?
- 答:java里面有个TimerTask你可以用你的java类继承这个类 它会在你设置轮询时间进行触发,下方是我以前写的方法 参考一下把
.res.portal.core;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class imerTask extends TimerTask{
static Timer timer = new Timer();
public static void init(String contextPath) {
try{
//10分钟轮询一次 单位毫秒
long timestamp = 1800000;
imerTask imerTask =new imerTask();
timer.schedule(imerTask, new Date(), timestamp);
}catch(Exception e){
}
}
@Override
public void run() {
imerTask imerTask =new imerTask();
//此处加入要触发的方法
}
} - 答:是程序之外的按钮 ,还是程序之内的按钮 ??
如果是程序之外的按钮 ,就只能使用Robot , 模拟鼠标点击
如果程序之内的 ,使用 Robot可以,但是不好 ,最好是使用 Timer 定时 ,然后调用 button.doClick(); - 答:重新实现listener接口,编一个自己的,写个线程定时调用你自己的listener的方法;
- 答:你使用定时器,定时执行一下函数不就可以了吗
问:jsp页面中java代码重复执行 执行两次
- 答:pageNumber 不是一个有效的整数,所以报了NumberFormatException异常,建议用try{}catch(){}包围起来
还有在页面上用JS函数判断下,不要让非法的数据进入服务器端去验证。
补充回答:
不是一个有效的数字,从你的【但是随后我打印pageNumber的值 System.out.println("pageNumber--"+pageNumber);却能打印出pageNumber的值来???太奇怪了吧...
】
描述来看可能是空字符串(也许是其他的汉字字符串),或者是“???”
建议你看看页面源码,里面是什么样的数据 - 答:很简单:
---------------------------------------
1、你要加上try-catch:
int pageNumber=0;
try { pageNumber=Integer.parseInt(request.getParameter("pageNumber")); }catch(Exception e) { pageNumber=0; }
不加就是出错.因为如果获得Null的话不能转类型的。
----------------------------------------
2、执行多次要看看你的代码才知道了,不过估计是你自己写得有问题了,比如循环出错了。 - 答:pageNumber 不是一个有效的整数,所以报了NumberFormatException异常,建议用try{}catch(){}包围起来
还有在页面上用JS函数判断下,不要让非法的数据进入服务器端去验证。
补充回答:
不是一个有效的数字,从你的【但是随后我打印pageNumber的值 System.out.println("pageNumber--"+pageNumber);却能打印出pageNumber的值来???太奇怪了吧...
】
描述来看可能是空字符串(也许是其他的汉字字符串),或者是“???”
建议你看看页面源码,里面是什么样的数据 - 答:页面的东西确实会执行多次的
所有的代码在你第一次载入是要执行一次
等你点下什么按钮后,把参数又传到本页面后,页面的程序会再执行一次。所以有时候你再打印的时候会出现两个结果,很正常的 - 答:java执行两次是因为代码逻辑出问题了,检查逻辑并控制提交次数。
1、禁用提交事件源
2、设置标识,提交时标识true,完成后标识false
<script src=""></script>
<script type="text/javascript">
$(function(){
$("#abv").one("click",function(){
alert("用户点击了提交按钮");
});
/*$("#abv").click(function(){//方案2
$(this).attr("disabled",true);
});*/
})
</script>
<input type="submit" id="abv" value="测试用按钮"/>