0 0

请教:ActionSupport 和 token interceptor 的问题!谢谢!!!!20

各位大虾好,下面是的问题,首先谢谢你们的回答!

我想用<s:token/>标签,配合 token interceptor 实现防止重复提交的问题。

但是我的Action ,如果继承了 ActionSupport类,

在第一次重复提交时(刷新提交页面)拦截成功。当我再此请求页面index.jsp,

然后再提交时,结果被拦截了!

下面是代码:

jsp:
<form method="post" action="addUser">
   		<s:token/>
   		<label >用户名:</label>
   		<input type="text" name="admin.username" id="username" />
   		<label >密码:</label>
   		<input type="password" name="admin.pwd" id="pwd" />
   		<input type="submit" value="submit"/>
   	</form>


action:
public class AdminAction extends ActionSupport {	
	private static final long serialVersionUID = 1L;
	
	private Admin admin;
	AdminDAO adao;
	
	public Admin getAdmin() {
		return admin;
	}
	public void setAdmin(Admin admin) {
		this.admin = admin;
	}
	public AdminDAO getAdao() {
		return adao;
	}
	public void setAdao(AdminDAO adao) {
		this.adao = adao;
	}
	
	
	public String addUser(){
		adao.save(admin);
		List list = adao.findAll();		ServletActionContext.getRequest().setAttribute("allusers", list);
		return "success";	
	}
	
}


struts.xml

<action name="addUser" class="AdminAction" method="addUser">
			<interceptor-ref name="defaultStack" />
			<interceptor-ref name="token"/>
			<result name="invalid.token" type="redirect">/repeatedSubmit.jsp</result>
			<result name="success">list.jsp</result>
			<result name="input">/index.jsp</result>
			<result name="error">/index.jsp</result>
		</action>


如果 在Action中 去掉 extends ActionSupprot ,那么能够实现提交后再刷新,
拦截成功。

再次请求index.jsp,再次提交,也能提交成功。





2013年3月29日 10:44

1个答案 按时间排序 按投票排序

0 0

引用
当我再此请求页面index.jsp,

然后再提交时,结果被拦截了!

,两个输入框输入的值相同么?

2013年3月29日 20:53

相关推荐

    struts2中token限制表单多次提交

    Struts2提供了Token插件来解决这个问题,确保每个表单提交只能被执行一次。下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间...

    struts2_token控制刷新重复提交

    - 如果应用部署在多个服务器节点上,需要考虑Token的一致性问题,可能需要使用共享缓存或数据库来存储和验证Token。 综上所述,Struts2的Token机制是防止Web应用中重复提交的有效工具,通过合理的配置和编程,可以...

    利用struts的token控制重复提交

    通过以上方法,Struts的Token机制能有效防止Web应用中的重复提交问题,确保数据的准确性和一致性。不过,随着技术的发展,现代框架如Spring Boot等提供了更先进的解决方案,例如CSRF(跨站请求伪造)保护,可以考虑...

    用struts使用Token机制来实现防重复提交

    这个拦截器会处理Token的生成和验证过程。例如: ```xml &lt;interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/&gt; &lt;interceptor-stack name="defaultStack"&gt; &lt;!-- 添加Token...

    Struts2 表单 重复提交

    在Eclipse项目中,`Struts_0304_Interceptor_token`可能包含了一个示例项目,展示了如何配置和使用Struts2的token拦截器来防止表单重复提交。通过查看该项目的代码和配置文件,你可以更深入地理解和学习这一功能。

    【原创】Struts2防止表单重复提交.doc

    Struts2框架提供了一种简单有效的方式来解决这一问题,即通过`&lt;s:token/&gt;`标签和相关的拦截器机制来实现。 #### 二、Struts2框架简介 Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并且进行了...

    struts1的令牌解决页面重复提交问题

    为了解决这个问题,Struts1引入了“令牌”机制,也称为Token Session或Token Interceptor。下面我们将详细探讨如何使用Struts1的令牌来防止页面重复提交。 ### 1. 令牌机制概述 令牌机制的基本思路是在用户提交...

    struts2 令牌使用例子

    1. **配置Struts2拦截器**:在struts.xml配置文件中,需要添加`token`和`tokenSession`拦截器到默认栈或自定义的拦截器栈中。`token`拦截器负责在表单中插入令牌,而`tokenSession`拦截器则负责验证令牌。 ```xml ...

    Struts速查手册HandBood系列(By FengGe整理)

    1. Action类:实现Action接口或继承ActionSupport基类,定义execute()方法处理请求。 2. Result类型:可以是JSP、FreeMarker、Velocity等模板技术,也可以自定义Result类型。 3. ActionMapping:Action与URL的映射,...

    struts标准库实现令牌

    在Struts的配置文件(通常为struts.xml)中,需要添加`token`和`tokenSession`拦截器到默认的拦截器栈。`token`拦截器负责在表单请求时生成和验证令牌,`tokenSession`则用于在用户会话中存储令牌,防止页面刷新时令...

    struts2上传图片

    在"struts2上传图片"这个场景下,我们将深入探讨如何在Struts2框架下实现用户上传图片的功能,并关注网站统计访问量以及防止重复提交的问题。 首先,上传图片是Web应用中常见的功能,它涉及到前端表单设计、后端...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_9_拦截器 共32页.pptx

    | 13 | token | 检查传到Action的token值的有效性,防止表单重复提交。 | **知识点4:如何使用Struts2自带的拦截器** - **配置**: 默认情况下,Struts2自带的拦截器配置在`struts-default.xml`文件中。 - **使用...

    struts_all

    Token机制是为了防止重复提交问题,确保每个表单提交都是唯一的。当用户点击多次提交按钮时,重复的请求会被框架自动拦截。 8. **lookup**:可能与Struts的查找机制相关,例如动态方法调用(Dynamic Method ...

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    Servlet、Struts和SpringMVC是Java Web开发中常用的三大框架,它们各自提供了处理这一问题的策略。以下将详细探讨这三种框架如何防止表单重复提交。 ### Servlet 在Servlet中,通常采用几种方法来避免重复提交: ...

    jsp-struts2

    Struts2的核心组件包括Action、Result和Interceptor(拦截器)。Action是业务逻辑的载体,处理用户请求并返回结果;Result定义了Action执行后的页面跳转逻辑;Interceptor则是在Action调用前后进行额外处理的机制,...

    Struts2.0中文教程

    - **Action类**:处理用户请求的Java类,通常继承自`ActionSupport`,包含业务逻辑方法。 - **结果类型**:Action执行后的跳转方式,如`dispatcher`(用于转发或重定向到JSP页面)、`stream`(用于下载文件)等。 ...

    ssh 框架技术

    - **自定义拦截器**:可以通过实现Interceptor接口来创建自定义拦截器。 #### 六、Hibernate基础 ##### 1. 持久化、持久层 - **持久化**:将内存中的数据保存到磁盘上的过程。 - **持久层**:负责数据持久化的...

    struts2的工作原理

    - **org.apache.struts2.components**:封装视图组件,Struts2在视图组件上做了很大加强,新增了多个组件,如`updownselect`、`doubleselect`、`datetimepicker`、`token`、`tree`等。 - **org.apache.struts2....

    struts2.0的总结

    &lt;interceptor-ref name="token"/&gt; &lt;interceptor-ref name="myInterceptor"/&gt; &lt;/interceptor-stack&gt; ``` 拦截器栈可以被指定到特定的 Action 中。 #### 七、小结 通过上述介绍可以看出,Struts2 框架为开发者...

    Struts2的工作机制及分析

    视图组件在Struts2中得到了增强,例如,Struts2提供了一系列组件如updownselect、doubleselect、datetimepicker、token和tree等,这些组件增强了用户体验并简化了视图层的开发。视图组件支持主题(theme)功能,允许...

Global site tag (gtag.js) - Google Analytics