jsp刷新页面表单重复提交问题解决方案共享

jsp刷新页面表单重复提交问题解决方案共享
使用Session ID和时间戳作为识别,关键代码如下:

复制代码代码如下所示:
公共课sswpdjaction延伸:{

公共字符串执行(){
**商业代码

设置/标识
This.setSessionToken();
添加一个页面
返回添加;
}
U3000 U3000
公共字符串保存(){
如果(this.token!= null this.token.equals(this.getsessiontoken())){
设置新徽标***
This.setSessionToken();
U3000 U3000 U3000 U3000 U3000 U3000
**商业代码
......
返回添加;
其他{ }
PrintWriter = null;
尝试{
HttpServletResponse.setContentType(文本/ HTML;字符集= UTF-8);
= httpservletresponse.getwriter();
out.println();
Out.flush();
U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000
} catch(IOException e){
E.printStackTrace();
最后,{ }
如果(out)!= NULL){
Out.close();
}
}
}
返回null;
}
}

公开课:扩展ActionSupport {

JSP页面
受保护字符串令牌;

公共字符串gettoken(){
返回令牌;
}

公共无效settoken(字符串标记){
this.token =令牌;
}

公共字符串getsessiontoken(){
如果(NULL)!= httpsession.getattribute(令牌)){
返回httpsession.getattribute(令牌);
其他{ }
返回null;
}
}

马克代**
公共无效setsessiontoken(){
串旗= usemd5(httpsession.getid system.currenttimemillis()+()));
httpsession.setattribute(令牌
httpservletrequest.setattribute(sessiontoken
}

* * MD5加密***
usemd5字符串(String str){
字节BS = str.getbytes(){ };
字符串结果= null;
尝试{
消息摘要MD5 = messagedigest.getinstance(MD5);
md5.update(BS);
结果:md5.digest()ToString();
} catch(nosuchalrithmexception e){
E.printStackTrace();
最后,{ }

}
返回结果;
}
}
JSP页面设置标识隐藏域:

复制代码代码如下所示:

U3000 U3000

tag:重复提交刷新页面表单问题解决方案电脑软件

相关内容