如数据表(User)字段有:
id
name
age
即将插入一条信息【1,“名字”,22】
在插入数据之前,先
select
count(*)
from
User
where
id=1
and
name='名字'
and
age=22
假若查询出来不为0,那么数据就重复了。
根据这条线,很容易写出完整代码了。
防止重复提交的方法很多,例如:1、Meta法
在你的表单页里HEAD区加入这段代码:
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
2、令牌法
生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session中的令牌比较,如不同则为重复提交。
3、禁用按钮法
<input type="button" value="提交" onclick="this.disabled=truethis.form.submit()">
4、struts配置法
修改struts-config.xml文件,在action里面有一个redirect重新定向的属性,struts中默认的是false,添加这个属性,改成true,在forword中写上要跳转页面的绝对或者相对地址就行了
修改如下:
<action-mappings>
<action attribute="newsActionForm" name="newsActionForm" input="/addnews.jsp" path="/newsAction" parameter="method" scope="request" type="com.yongtree.news.action.NewsAction">
<forward name="list" path="/listnews.jsp" redirect="true"></forward>
<forward name="error" path="/addnews.jsp"></forward>
</action>
</action-mappings>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)