struts2中token防止重复提交表单

struts2中token防止重复提交表单

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年7月12日 11:52:32 星期日

http://fanshuyao.iteye.com/

第一步:在表单中加上<s:token></s:token>标签,这个需要在页面头引入struts的标签

<%@ taglib prefix="s" uri="/struts-tags" %>

例:

<s:form action="login" method="post" theme="simple">
        用户名:<s:textfield name="userName"></s:textfield><br/>
        密码:<s:password name="userPassword"></s:password><br/>  

        <s:token></s:token>
        <input type="submit" value="登录" /><br/>
    </s:form>  

第二步:在struts.xml文件中配置token,即配置重复提交跳转的页面及拦截器

<result name="invalid.token">token.jsp</result>
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>

例:

<package name="strutsTest" extends="struts-default">
        <action name="login" class="com.struts2.action.LoginAction">
            <result name="success">userIndex.jsp</result>
            <result name="input">login.jsp</result>
            <result name="invalid.token">token.jsp</result>
            <interceptor-ref name="token"></interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>
 </package>  
时间: 2024-10-12 05:46:31

struts2中token防止重复提交表单的相关文章

Struts2 token禁止重复提交表单

如果服务器响应慢的情况下,用户会重复提交多个表单,这时候有两种设计思想: 1.在客户端使用JS技术,禁止客户重复提交表单.但是这样会使一些不使用浏览器方式登陆的人比如使用底层通信来攻击你的服务器 2.在服务器端进行验证 Struts2设计了token标签来进行验证,在使用token时要注意,你点击两次之后,它会回到"invalid.tonken"那个页面,这时如果你使用回退的方式或者F5方式再次提交,会被拦截 使用token的方法: 1.在需要使用验证的的form标签里面,加入<

JavaWeb 之 重复提交表单和验证码相关的问题!

下面我们首先来说一下表单的重复提交问题,我们知道在真实的网络环境中可能受网速带宽的原因会造成页面中表单在提交的过程中出现网络的延迟等问题,从而造成多次提交的问题!下面我们就具体来分析一下造成表单提交的一些常见问题. 下面我们就来列举一下重复提交的情况: ① .当表单提交数据到一个 Servlet 中,然后 Servlet再通过请求转发到成功页面,但是此时的地址栏中的地址是到 Servlet映射中的地址,并没有跳转到成功页面相关的JSP页面中,此时刷新页面会造成再一次提交表单. ② .当在表单页面

php防止用户重复提交表单

我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 效果图: 那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手: 首先从前端做限制.前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效. 第二,我们可以在提交后做redirect页面重定向,

如何防止重复提交表单?

防止重复提交表单的方法有很多,包括数据库判断,js验证,cookies验证及session验证等,具体使用方法如下: 使用JS让按钮在点击一次后禁用(disable).采用这种方法可以防止多次点击的发生,实现方式较简单. 缺点是若客户端禁止JavaScript脚本,则失效. 在提交成功后执行页面重定向(redirect).转到提交成功信息页面. 特点:避免F5重复提交,消除浏览器前进和后退按钮可导致的同样问题. 表单隐藏域中存放session(表单被请求时生成的标记).采用此方法在接收表单数据后

PHP防止重复提交表单

<?php /* * PHP简单利用token防止表单重复提交 */ session_start(); header("Content-Type: text/html;charset=utf-8"); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION['toke

jsp中普通按钮如何提交表单

jsp中普通按钮如何提交表单方法1: <form action = "提交的地址">         <input type="submit" value="提交">        </form>方法2:<form action = "提交的地址">        <input type="button" value="提交" onc

jquery中使用$(#form).submit()提交表单无效原因分析及解决Script

今天写了一个表单验证,验证的时候没有任何问题,但是页面提交不了,很诡异,然后各种百度,查了一下的原因是input的id不能为submit 注意:提交表单的时候,input的id不能为submit <dl> <dd> <label>角色名称:</label> <input type="text" id="role_name" name="name" style="text-indent

Struts2中UI标签之非表单标签

1.非表单标签主要用于在页面生成一些非表单的可视化元素,例如Tab页面,输出HTML页面的树形结构等.当然,非表单标签也包含在页面显示Action里封装的信息,非表单标签主要有如下几个: a:生成一个超级连接(link). actionerror:如果Action实例的getActionError()方法返回不为null,则该标签负责输出该方法返回的系列错误. actionmessage:如果Action实例的getActionMessage()方法返回不为null,则该标签负责输出该方法返回的

重新理解了重定向,利用重定向可以防止用户重复提交表单(兼谈springmvc重定向操作)

自己用springmvc框架有一段时间了,但是都还一直分不清楚什么时候应该用转发,什么时候应该用重定向.可能用转发的情形太多了,以致于自己都忘记了还有重定向. 当用户提交post请求之后,刷新页面就会造成数据的再一次提交,也就是常说的重复提交.在网上查阅了相关资料,发现利用重定向可以有效防止重复提交数据. 重定向即客户端向服务器发送一个请求后,由服务端将请求按照程序里编码指定的请求方向再请求一次,在springmvc的开发中,返回一个重定向视图只需要在视图名称前加上"redirect:"