- 浏览: 93289 次
- 性别:
文章分类
最新评论
-
softkid:
pool中的string对象会不会被GC回收啊?
String s = new String("abc");你真的了解吗??? -
sarsgetaway:
[b]public String readTemple(Str ...
jsp生成html -
phoenix:
建议增加web.xml关于此filter的配置文件
用于检测用户是否登陆的过滤器
<script language="javascript">
var checkSubmitFlg = false;
function checkSubmit() {
if (checkSubmitFlg == true) {
return false;
}
checkSubmitFlg = true;
return true;
}
document.ondblclick = function docondblclick() {
window.event.returnValue = false;
}
document.onclick = function doconclick() {
if (checkSubmitFlg) {
window.event.returnValue = false;
}
}
</script>
<html:form action="myAction.do" method="post" onsubmit="return checkSubmit();">
-------------------------------------------------------------------------------------------------------------------------------------
<script language="JavaScript">
<!--
var checkSubmitFlag=true;
function checkSubmit()
{
if(true==checkSubmitFlag)
{
//document.theForm.btnSubmit.disabled = true;
document.theForm.submit();
checkSubmitFlag = false;
}
else
{
alert("你已经提交了表单,请勿重复提交。");
}
}
-->
</script>
其中注释的这句//document.theForm.btnSubmit.disabled = true;
意思是让提交后的按钮,禁用掉。
而,else则是弹出了一个警告框,相对来说,弹出警告框,不是那么友好。
2 还是javascript,将提交按钮或者image置为disable
<html:form action="myAction.do" method="post"
onsubmit="getElById('submitInput').disabled = true; return true;">
<html:image styleId="submitInput" src="images/ok_b.gif" border="0" />
</html:form>
3 利用struts的同步令牌机制
利用同步令牌(Token)机制来解决Web应用中重复提交的问题,Struts也给出了一个参考实现。
基本原理:
服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。
if (isTokenValid(request, true)) {
// your code here
return mapping.findForward("success");
} else {
saveToken(request);
return mapping.findForward("submitagain");
}
Struts根据用户会话ID和当前系统时间来生成一个唯一(对于每个会话)令牌的,具体实现可以参考TokenProcessor类中的generateToken()方法。
1. //验证事务控制令牌,<html:form >会自动根据session中标识生成一个隐含input代表令牌,防止两次提交
2. 在action中:
//<input type="hidden" name="org.apache.struts.taglib.html.TOKEN"
// value="6aa35341f25184fd996c4c918255c3ae">
if (!isTokenValid(request))
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("error.transaction.token"));
resetToken(request); //删除session中的令牌
3. action有这样的一个方法生成令牌
protected String generateToken(HttpServletRequest request) {
HttpSession session = request.getSession();
try {
byte id[] = session.getId().getBytes();
byte now[] =
new Long(System.currentTimeMillis()).toString().getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(id);
md.update(now);
return (toHex(md.digest()));
} catch (IllegalStateException e) {
return (null);
} catch (NoSuchAlgorithmException e) {
return (null);
}
}
http://www.ycgczj.com.cn/45034.html
发表评论
-
类的初始化顺序---你真的明白吗???^_^
2007-11-13 17:09 709^_^基础知识,要是不很明白的就看看吧。^_^ public ... -
最重要的十几个J2EE 最佳实践
2007-01-06 09:25 687简介在过去的 5 年中,已经有许多人写了关于 J2E ... -
J2EE项目10大风险
2007-01-06 09:53 888当你开始着手组织一个 ... -
把java本地程序配置在windows服务来运行[转载]
2007-01-07 15:27 1109步骤如下: 0 ... -
JSP 2.0: The New Deal, Part 1 [转载]
2007-01-08 15:18 773期待已久的日子即将到来: 最新版 ... -
showDialog的JSP应用
2007-01-16 16:17 1880用于解决在一个页面上 ... -
showModalDialog和showModelessDialog使用心得
2007-01-20 13:23 843一、showModalDialog和showMod ... -
JBoss启动过程
2007-01-28 09:28 8361. o ... -
J2EE开发之常用开源项目介绍
2007-01-28 09:49 807主要就我所了解的J2EE开发的框 ... -
frame中隐藏横向滚动条
2007-01-28 17:50 2589在网吧客户端项目中使用了frame的方式,布局如下:遇到的问题 ... -
jsp生成html
2007-01-31 18:31 2173从网上找到了两种方法都是大同小异,经过 ... -
编写你自己的单点登录(SSO)服务
2007-02-01 15:06 1193摘要 ... -
HttpClient入门
2007-02-01 15:07 784HttpClient 是 Apache Jakarta Com ... -
跨domain的SSO
2007-02-01 15:31 910在我写了SSO的文章以后,有几个网友希望我能提一提跨domai ... -
jfreechart例子
2007-02-07 10:44 4161一、饼图<%@ page language=" ... -
flash对联广告
2007-02-14 16:35 757<html><head></he ... -
什么是Portlet ?
2007-03-09 08:37 937作者:Sunil Patil; observer ... -
在J道上看到的:RoR可否替代J2EE?
2007-03-17 14:40 1221... -
[转载]session详解
2007-03-21 08:36 816這篇文 ... -
IP地址段的过滤
2007-03-23 14:48 1425昨天接到领导指示,要对地市的IP地址 ...
相关推荐
JSP避免Form重复提交的三种方案.docx
JSP_重复提交_解决方法JSP_重复提交_解决方法JSP_重复提交_解决方法
jsp中实现重复提交详细
NULL 博文链接:https://feng5588feng.iteye.com/blog/1494002
JSP乱码 N种解决方案
一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar
SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器
重复提交的分类: 1.由于网速原因而重复点击提交按钮 2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例...
jsp+servlet做的form表单各个元素的提交到后台处理再显示
jsp 重复提交问题
在一个jsp页面中,定义了一个用户登录界面(以form表单定义),但要达到检验输入的信息的合法性,就需要对输入的用户信息作判断,那么自然就需要取出其中的值。有的页面可以用action传参来得到form中输入的信息值,...
jsp表单的FORM传值
主要介绍了JSP针对表单重复提交的处理方法,涉及JSP基于session的重复提交判定使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
教学视频--JSP提交form乱码问题解决演示.rar
java开发时防止jsp刷新造成的重复提交 经测试完美
一个jsp页面中多个提交按钮提交不同的页面.zip