社区
Web 开发
帖子详情
在jsp+javabean+servlet里如何防止用户能过刷新重复的提交数据
lirobo
2006-08-08 11:47:32
我现在做的是一个jsp+javabean+servlet的系统啊
是用servlet来处理业务逻辑所以地址栏上URL地址上老是停在第一次调用servlet上面
所以如果用户发现这个问题的话他们就可以通过刷新重复的刷新写入数据啊
大家有没有什么好的解决方案呢
...全文
455
13
打赏
收藏
在jsp+javabean+servlet里如何防止用户能过刷新重复的提交数据
我现在做的是一个jsp+javabean+servlet的系统啊 是用servlet来处理业务逻辑所以地址栏上URL地址上老是停在第一次调用servlet上面 所以如果用户发现这个问题的话他们就可以通过刷新重复的刷新写入数据啊 大家有没有什么好的解决方案呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenhui9876
2006-08-17
打赏
举报
回复
mark
feyge
2006-08-16
打赏
举报
回复
sign
huihui0103
2006-08-16
打赏
举报
回复
mark!up!!!
daxu
2006-08-16
打赏
举报
回复
看看
china2001ok
2006-08-16
打赏
举报
回复
LZ也可以通过时间判断啊一样的
dreamover
2006-08-16
打赏
举报
回复
这个有个问题就是这样的.
当用户第一次提交数据的时(没刷新).
这个时候代码是没问题.
数据操作完成就removeAttribute()了.
当用户刷新时,确实不会通过.不过这个时候session.getAttribute("flag")并没有flag了..
所以程序会报错.
=============================================
这儿不会报错的,因为我的session.getAttribute("flag")是在equals()方法里
xiariguji
2006-08-16
打赏
举报
回复
可以再改进一下,把销毁和新建一个标识放在一起进行
sessionlistener里sessioncreated方法里
session.setAttribute("flag",初始值);
生成表单页面时
<input type=hidden name="flag" value="<%=session.getAttribute("flag")%>">
表单处理时
Integer flag = new Integer(Integer.parseInt(request.getParameter("flag")));
if(flag.equals(session.getAttribute("flag")){
//更新数据
resetFlag();
}else{
//重复提交了,处理代码
}
void resetFlag(){
session.setAttribute("flag",rand.nextInt);
}
这个代码确实避免了程序的报错.
采用的原理是随即生成的随即数很大程度上是不会相同的.
不过也要避免.万一你提交后产生的随即数和开始的相同(虽然几率很小.几乎没有.)
可是程序开发,要做到能避免就避免的.
所以我觉得在void resetFlag()
{
Integer flags=new Integer(rand.nextInt());
if(flags==flag)
{
flags=new Integer(rand.nextInt());
}
else
{
session.setAttribute("flag",rand.nextInt);
}
}
楼主做人要厚道,记得结贴给分哦
xiariguji
2006-08-16
打赏
举报
回复
dreamover(梦醒了) ( ) 信誉:100 2006-8-8 11:58:18 得分: 0
显示表单的时候在session中生成一个随机数
<%
Integer flag=new Integer(rand.nextInt());
session.setAttribute("flag",flag);
%>
<input type=hidden name="flag" value="<%=flag%>">
在提交时验证
Integer flag = new Integer(Integer.parseInt(request.getParameter("flag")));
if(flag.equals(session.getAttribute("flag")){
//更新数据
session.removeAttribute("flag");
}else{
//重复提交了,处理代码
}
这个有个问题就是这样的.
当用户第一次提交数据的时(没刷新).
这个时候代码是没问题.
数据操作完成就removeAttribute()了.
当用户刷新时,确实不会通过.不过这个时候session.getAttribute("flag")并没有flag了..
所以程序会报错.
dreamover
2006-08-08
打赏
举报
回复
可以再改进一下,把销毁和新建一个标识放在一起进行
sessionlistener里sessioncreated方法里
session.setAttribute("flag",初始值);
生成表单页面时
<input type=hidden name="flag" value="<%=session.getAttribute("flag")%>">
表单处理时
Integer flag = new Integer(Integer.parseInt(request.getParameter("flag")));
if(flag.equals(session.getAttribute("flag")){
//更新数据
resetFlag();
}else{
//重复提交了,处理代码
}
void resetFlag(){
session.setAttribute("flag",rand.nextInt);
}
feigme
2006-08-08
打赏
举报
回复
楼上方法不错
也可以用
判断来源页面
当前页面刷新肯定是不过的
dreamover
2006-08-08
打赏
举报
回复
显示表单的时候在session中生成一个随机数
<%
Integer flag=new Integer(rand.nextInt());
session.setAttribute("flag",flag);
%>
<input type=hidden name="flag" value="<%=flag%>">
在提交时验证
Integer flag = new Integer(Integer.parseInt(request.getParameter("flag")));
if(flag.equals(session.getAttribute("flag")){
//更新数据
session.removeAttribute("flag");
}else{
//重复提交了,处理代码
}
software_apprentice
2006-08-08
打赏
举报
回复
struts框架有利用Token(就是楼上所说的随机数)防止重复提交的部分,楼主可以参考一下
碧海情天-赵亮
2006-08-08
打赏
举报
回复
好
基于
JSP
+
Servlet
的论坛系统源码+项目说明(
Servlet
+
JSP
+
JavaBean
).zip
基于
JSP
+
Servlet
的论坛系统源码+项目说明(
Servlet
+
JSP
+
JavaBean
).zip # Java课设/Java Web 基于
JSP
+
Servlet
的校园论坛系统 这
里
说一下运行方法: 1. 下载项目,用IDEA打开 2. 导入sql文件,在/src/main/java/...
jsp
/
servlet
/Ajax实现的猜数游戏
使用
jsp
/
servlet
/Ajax,实现的猜数游戏,实现了页面的局部
刷新
效果!
JSP
从入门到精通+点餐系统实战
学会开发动态的
JSP
程序,
jsp
环境的安装与配置,
jsp
基础,
jsp
的9大内置对象的应用,
servlet
技术基础,
javabean
的应用,
jsp
数据
库操作,
jsp
数据
库连接池,
jsp
自定义标签,
jsp
标准标签库,
jsp
监听器和过滤器,
jsp
文件...
jsp
网络编程从基础到实践
实例55 在
JSP
中应用
JavaBean
实例56 用HTML表单设置
JavaBean
的属性值 实例57 计数器
JavaBean
实例58 查询
数据
库
JavaBean
实例59 购物车
JavaBean
及其应用 实例60
数据
库记录分页操作
JavaBean
第9章
Servlet
技术...
JSP
网络编程从基础到实践的实例代码
实例55 在
JSP
中应用
JavaBean
实例56 用HTML表单设置
JavaBean
的属性值 实例57 计数器
JavaBean
实例58 查询
数据
库
JavaBean
实例59 购物车
JavaBean
及其应用 实例60
数据
库记录分页操作
JavaBean
第9章
Servlet
技术...
Web 开发
81,092
社区成员
341,717
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章