- 浏览: 635088 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
struts2防页面刷新重复提交
做web开发时.经常会出现系统缓慢导致用户多次重复提交.或被恶意重复提交.有很多解决办法:比如:点了提交按扭后就让按扭 disable=flase或其他相关处理.但struts2中处理起来更方便.
主要是需要做以下几个步骤:
1、jsp中增加 <s: token />;
2、struts2配置文件中.action中增加几行代码:
<interceptor-ref name=”defaultStack” />
<interceptor-ref name=”token” />
<result name=”invalid.token” type=”redirect“>/token.jsp</result> //如果是重复提交则跳转至token.jsp页面
另外注意点的是:在提交成功后的<result name=”success” type=”redirect”>…</result> 也设置type=redirect
在页面加载时,<s: token />产生一个GUID(Globally Unique Identifier,全局唯一标识符)值的隐藏输入框如:
<input type=”hidden” name=”struts.token.name” value=”struts.token”/>
<input type=”hidden” name=”struts.token” value=”BXPNNDG6BB11ZXHPI4E106CZ5K7VNMHR”/>
清 单6 <s:token />的HTML输出同时,将GUID放到会话(session)中;在执行 action之前,“token”拦截器将会话token与请求token比较,如果两者相同,则将会话中的token删除并往下执行,否则向 actionErrors加入错误信息。如此一来,如果用户通过某种手段提交了两次相同的请求,两个token就会不同。
具体实现
首先看一下Action的代码:
package tutorial;{
private static final long serialVersionUID = 6820659617470261780L;{
return message;
}{
this.message = message;
}{
System.out.println(“Executing action, your message is “ + message);
return SUCCESS;
}
}
import com.opensymphony.xwork2.ActionSupport;
public class CoolTagAction extends ActionSupport
private String message;
public String getMessage()
public void setMessage(String message)
@Override
public String execute()
清 单7 src/tutorial/CoolTagAction.java以上代码一目了然,再看看JSP的写法:
JSP也很简单,就是加入<s:token />标志。
%@ page language=”java” contentType=”text/html; charset=utf-8″ pageEncoding=”utf-8″ %>
<%@ taglib prefix=“s“
uri=“/struts-tags“
%><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Struts 2 Cool Tags – <s:token/ ></title>
<s:head />
</head>
<body>
<h2>struts2防重复提交<s:token/></h2>
<s:actionerror />
<s:form action=”Token” >
<s:textfield name=”message” label=”Message” />
<s:token />
<s:submit />
</s:form>
</body>
</html>清单8 WebContent/token.jsp接下来是Actoin配置的XML片段:
<?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE struts PUBLIC
“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
“http://struts.apache.org/dtds/struts-2.0.dtd”><struts>
<package name=”Struts2_COOL_TAGS_DEMO” extends=”struts-default”>
<action name=”Token” class=”tutorial.CoolTagAction”>
<interceptor-ref name=”defaultStack” />
<interceptor-ref name=”token” />
<result name=”invalid.token”>/token.jsp</result>
<result>/token.jsp</result>
</action>
<action name=”*”>
<result>/{1}.jsp</result>
</action>
</package>
</struts>清单9 src/struts.xml以上XML片段值注意的是加入了“token”拦截器和“invalid.token”结果, 因为“token”拦截器在会话token与请求token不一致时,将会直接返回“invalid.token”结果
发表评论
-
maven项目第一行报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mave
2020-04-09 01:23 456maven项目第一行报错:org.apache.maven.a ... -
删除项目中的所有.svn文件夹(或CVS文件夹)
2019-06-06 19:19 408当你的项目用SVN管理时,在项目的每个文件夹中会多一个.svn ... -
eclipse下生成Java类图和时序图,生成UML图
2016-12-30 02:28 2009最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理 ... -
eclipse使用ModelGoon插件自动生成java类的UML图
2016-12-30 02:23 11931、ModelGoon介绍 ModelGo ... -
linux下的tomcat jvm内存
2016-11-30 23:19 550常见的内存溢出有以下两种: Java.lang.OutOf ... -
FTP实现客户端与服务器文件传输(二)
2016-08-06 01:22 980/*以sun开头的class不是java里面的标准类,而是 ... -
java实现文件转换成二进制存储与取出
2016-08-06 01:21 2651一、功能描述: 将文件转成二进制数据放入数据库中,需要的 ... -
Resource specification not allowed here for source level below 1.7
2016-08-05 11:14 1085现象:tomcat能正常启动,但打开页面时,出现上面的错误 ... -
使用commons.net FTP 和sun.net.ftp.FtpClient 多种方式上传下载(包括批量)删除功能(一)
2016-08-04 10:38 649使用commons.net FTP 上传下载删除功能 ... -
第十一节 CAS服务端RememberMe
2016-06-07 11:03 1131关于启用RememberMe功能所需做的修改描述 ... -
第七节:CAS4.0.0 以上服务端配置多个数据源
2016-06-03 14:50 10591.首先打开deployerConfigContext.x ... -
第六节:CAS服务端自定义数据库认证用户
2016-06-03 11:46 2300/** * @see --------------- ... -
第四节:将CAS https的认证方式改为http
2016-06-01 08:49 1646一、CAS Server端的修改 1、找到cas\W ... -
java 读取html过滤标签
2016-05-27 16:19 947public static void main(Strin ... -
获取cookie
2016-05-26 16:07 778获取cookie -
spring同时集成redis和mongodb时遇到多个资源文件加载的问题
2016-05-14 15:40 734两天平台中集成redis和mongodb遇到一个问题 单独 ... -
Windows上安装OpenSSL和生成证书
2016-05-10 15:52 22871,先下载OpenSSL http://www.slpr ... -
4.ubuntu14.04 安装mongodb笔记
2016-05-06 08:52 6251、使用系统自动获取安装。 1)获取更新 s ... -
3.nodejs nodejs的mysql模块
2016-04-12 22:20 520安装nodejs的mysql模块首先要选定一个数据库,我选择 ... -
第二节:cas处理中文乱码
2016-04-07 11:38 1225cas service配置参考第一节。 casServi ...
相关推荐
struts2令牌解决页面重复提交问题,资源中包含一个实例代码
struts2_token控制刷新重复提交
Struts2 防重复提交Demo 利用Struts2自带的s:token写的防数据重复提交策略.
提供源代码和思想,整体架构都在,只需加入你自己的业务逻辑即可。
struts2中对表单重复提交的处理方法;包括处理两种典型的表单重复提交的思路和方法
当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...
这里是Struts2 中放置表单重复提交的例子。
运用struts2解决表单的重复提交问题
Struts2防止重复提交解决方案
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
struts token机制解决表单重复提交
struts2简单登录页面struts2简单登录页面struts2简单登录页面struts2简单登录页面struts2简单登录页面struts2简单登录页面struts2简单登录页面struts2简单登录页面
Struts2文件上传下载和表单重复提交问题
spring1.2 struts1.2 hibernate 框架 token防刷新防重复提交(自定义) md5加密 验证码 此为第二部分,需要将三个包合在一起解压
Servlet、Struts、SpringMVC对于表单重复提交的解决方案
关于struts2里用javascript刷新window.showModalDialog的父页面
jquery+struts2实现异步刷新,是个不错的实例,可以结合到项目中使用,简单易懂。
JavaEE Struts2利用tokenSession防止重复提交
struts2无刷新上传,你只需将项目加到tomcat后,直接访问即可。项目里面有相应的操作说明,源码里面也有注释。 1、修改了图片的读取方式,这次读取会更快(以前的方式使用io流读取文件,然后再写到文件里面,现在是...