Struts2标签之token防止表单重复提交

Struts2的token标签防止表单重复提交的思路是这样的:
1、当请求到标有<s:token/>标签的JSP的时候,Struts2会建立一个GUID(全局唯一的字符串)放在session中,并且会成为一个hidden放在form中,这个GUID就是这个hidden的值。
2、在struts.xml文件里配置好的token拦截器会判断客户端form提交的token和session中保存的session是否相等。如果equals=true则执行Action。否则拦截器给值栈中压入actionError对象并设置其属性invaid.token的值,最后返回invaid.token结果,Action对应的方法也不会执行,这个时候在action的result里面配置该类型的结果跳转视图,并在值栈中的ActionError里找到invaid.token在国际化资源对应的值并输出,默认是一串英文(The form has already been processed or no token was supplied, please try again),也可以自行设置。



<s:form name="tag-form" action="tag-form" method="post">

    <s:token />
    <s:elseif test="getActionErrors()">
        <s:actionerror/>
    </s:elseif>

    <s:textfield name="userName" label="用户名"></s:textfield><br/>
    <s:password name="password" label="密码"></s:password><br/>
    <s:submit />

</s:form>


struts.messages.invalid.token=请不要重复提交表单


<?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>
	<constant name="struts.devMode" value="true" />
	<constant name="struts.custom.i18n.resources" value="messages"/>
	
	<package name="main" extends="struts-default">
		<action name="tag-form" class="com.chou.web.TagAction" method="submit">
			<interceptor-ref name="token">
				<param name="includeMethods">submit</param>
			</interceptor-ref>
			<interceptor-ref name="paramsPrepareParamsStack"/>
			<result>tag.jsp</result>
			<result name="invalid.token">tag.jsp</result>
		</action>
	</package>
</struts>




转载于:https://my.oschina.net/easyean/blog/535122

YOLOv11改进 | Neck篇 | 独创HFPN利用分层特征融合块HFFB模块融合多层次特征改进yolov11(全网独家创新) 本文给大家带来的最新改进是利用分层特征融合块HFFB创新yolov11的neck部分我称之为HFPN,这个模块可以融合局部特征、全局特征、中间特征将三种特征融合在一起辅助yolov11进行检测,经过我的设计分为三种可以针对大目标、小目标、标准目标的检测方式均不同,大家可以根据自己的数据集进行不同的选择,本文的内容为我独家创新。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、原理介绍三、核心代码四、添加方法4.1 修改一4.2 修改二4.3 修改三4.4 修改四。 阅读详情

相关推荐

BGE-Reranker-v2-M3介绍

重排序模型介绍

吉米_王 5887

Struts2标签<s:token />防止表单重复提交

标签防止表单重复提交,用法如下: 第一步:在表单中加入                                第二步:在struts.xml文件中配置拦截器

LZH的专栏 3189

解决nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy.

解决nfs挂载根文件系统报错的问题:VFS: Unable to mount root fs via NFS, trying floppy.

汉尼拔勇闯天涯 4571

Struts2中利用token标签实现防止表单重复提交

Struts2中利用token标签实现防止表单重复提交 我们需要做的步骤如下: 1.在所需要实现此功能的表单中添加token标签; 2.在Struts.xml文件中配置拦截器; 两种方式: token :需要制定跳转页面 如: /error.jsp   (error.jsp是可以变的,其他的都是固定的) tokenSession:不需要制定跳转页面,重复提交的时候停留在本页面

弗兰-随风小欢的博客 462

保姆级避坑指南:用Livox官方工具搞定Mid-360多雷达自动标定(附源码Bug修复)

本文详细解析了使用Livox官方工具进行Mid-360多雷达自动标定的全流程,包括环境搭建、工具链配置、关键Bug修复及数据采集最佳实践。重点解决了PointCloudMapper.cpp边界检查缺失和calibration.cpp点云显示问题,提供了实用的代码修复方案和标定质量评估指标,帮助开发者高效完成激光雷达标定任务。

weixin_29053695的博客 278

PTGui使用教程

PTGui使用教程为啥使用ptgui开始使用ptgui 为啥使用ptgui ptgui是一个全景拼接软件,在海思hi3559上做视频拼接的时候,需要拼接参数,这是就需要使用到ptgui,这里可以在该网站下下载ptgui:下载地址 开始使用ptgui 第一步,加载图片,我这里添加了三幅图 然后添加控制点(可以先多对准几次图像,这样会自动生成一些控制点,但是不保证准确),建议控制点不要太密集 点开镜头设置,勾选以下几个选项以及配置好镜头类型,如下图 点开优化器,在高级界面中配置如下参数,最后点

what_wrong的博客 1万+

struts2 <s:token/>标签防止表单重复提交

  对于采用token防止表单重复提交的原理我就不用多说了,大家也应该都知道,在这我只介绍在struts2中如何利用标签实现防止表单的重复提交。      首先在表单中加入标签 ,会生成一个隐藏域用于存储系统自动随机生成的token值。然后在action中启用TokenInterceptor,即在struts.xml中加入下面类似代码。  &lt;action name="register" ...

jingrenlang的博客 159

3dmax文件格式转换——.max 转换为 .flt(解决转换后.flt没有纹理贴图的问题)

本文主要介绍如何在3dmax中将.max格式文件转换为.flt格式文件,并解决转换后的文件没有纹理贴图的问题。 在3dmax中,将.max文件转换为.flt格式,只需导出选择.flt格式即可,但是导出的文件在osgEarth中加载后,缺少纹理和贴图。 下面是解决方案: 1、选中加载的模型,然后点击 渲染-> 渲染到纹理 2、将 渲染到纹理 子窗口往下拉,点击 添加 按钮,添加 ...

cchangcs 6159

struts2 防止表单重复提交主要用的到标签是<s: token />

防止表单重复提交主要用的到标签是,拦截器 interceptor-ref name="token" />,还有一个默认的返回值result name="invalid.token">/input.jspresult>     在页面加载时,产生一个GUID(Globally Unique Identifier,全局唯一标识符)值的隐藏输入框如:   input type="h

努力成就自我 586

大模型多智能体协作面试题及参考答案

在多智能体系统里,代理定义自身目标或效用函数的过程与系统架构、应用场景紧密相关。从本质上讲,目标是代理行为的导向,而效用函数则是对目标达成程度的量化评估。代理通常依据自身角色、系统全局需求以及与其他代理的交互关系来确立目标。比如在合作型 MAS 中,代理目标可能需要与全局目标对齐,像多个物流机器人协作完成货物配送时,每个机器人的目标会围绕 “高效完成分配任务”“避免路径冲突” 等展开,其效用函数可能涉及任务完成时间、能耗等指标的加权求和。目标定义的方式存在多种类型。

大模型大数据攻城狮的专栏 1021

AIPex:AI + 自然语言驱动的浏览器自动化扩展

AIPex是一款革命性的Chrome扩展,通过AI技术实现自然语言驱动的浏览器自动化。它支持30多种自动化工具,包括智能标签页管理(分组、切换、批量操作)、页面内容提取(文本、链接、元数据)、交互元素操作(点击、滚动)以及表单智能填写等功能。用户只需用自然语言下达指令,即可快速完成复杂的浏览器操作,大幅提升工作效率。AIPex特别适合需要处理大量重复性网页操作的用户,如数据分析师、产品经理等。

blues_C的博客 1120

Struts2学习10--防止表单的重复提交token标签和tokenSession

Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌

极客on之路 479

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由

XiaoqiangClub的博客 1万+

struts2基础(一) struts2标签<s:token />防止表单重复提交

标签防止表单重复提交,用法如下: 第一步:在表单中加入                                第二步:在struts.xml文件中配置拦截器                                                                /WEB-INF/page/messa

babyZeng 623

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Struts2 中使用token标签防止刷新和后退进行重复提交

在Struts2中使用token标签和内置的拦截器,来防止刷新提交和后退提交非常简单方便。 1. 在需要防止重复提交的jsp中,只需添加一个标签 2. 在对应的struts.xml中进行配置token拦截器,如下代码,红色部分 http://struts.apache.

Magister_Feng的专栏 6742

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Struts2学习笔记(十八) 防止表单重复提交

概述 有些时候,我们在想某个网页提交了信息之后,由于某些原因,我们会重复点击提交,或者刷新页面,或者是在提交页面呈现之后点击后退按钮,从而导致这些表单数据被重复提交。在大多数情况下我们是不希望这种情况发生的,我们不可能强迫使用者不这么做,那么我们就只能自己想办法来尽量避免这些情况了。 下面我们来看一个例子: public class HelloServlet extends HttpSe

心静欣 6170

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java 防止表单重复提交

防止表单重复提交,或者是防止按F5 刷新提交表单。 在WEB开发中是经常会碰到这样的问题的。 目前主流的解决方法有以下三种: 1、采用脚本来解决 2、重定向到别的页面 3、使用s:token 标签 由于我是使用S2SH来开发的,所以就选择了第三种方法。 先简单的解释下&lt;s:token /&gt; 这个标签,&lt;s:toke...

迷彩风情 84

SSH笔记-Struts2的防止表单重复提交

1、表单重复提交定义: (1)在不刷新表单页面的前提下: I、多次点击提交按钮 II、已经提交成功, 按 “回退” 之后, 再点击 “提交按钮” III、在控制器响应页面的形式为转发情况下,若已经提交成功, 然后点击 “刷新(F5)” (2)解决表单重复提交步骤: I、刷新表单页面, 再提交表单不算重复提交 II、若使用的是 redirect响应类型, 已经...

oyy的博客 1169

Struts2第十三篇【防止表单重复提交】

回顾防止表单重复提交当我们学习Session的时候已经通过Session来编写了一个防止表单重复提交的小程序了,我们来回顾一下我们当时是怎么做的: 在Servlet上生成独一无二的token,保存在Session域中,并交给JSP页面 JSP页面在提交表单数据的时候,把token放在隐藏域中…一起带过去给Servlet Servlet判断用户有没有带token值过来,判断token的值是否和Sess

zhong_fucheng 416

Struts2提供token关键字,可以防止表单的重复提交

token标签输出两个隐藏的表单字段,用于防止表单的重复提交。要让token标签正常工作,需要启用TokenInterceptor或者TokenSessionInterceptor拦截器。     配置一:(需要配置的部分使用红色字体进行了标注)   1、  首先需要启用token,需要在struts.xml中进行配置token的拦截器:   如在login的action中: ...

u011374091的博客 162

Struts2 <s:token>防止表单重复提交   %{}

token是为了防止表单重复提交,token 原理大致为:1:显示表单的那个 action 中使用 createToken() 生成一个随机的 token值,并存放在服务端(session或者cache中),并且传递一份到页面中2:表单页面使用一个隐藏表单域获取后端传过来的 token值,该表单页面提交时会将此 token 值一同提交到后端3:在表单页面提交到的 actioin 中使用 valid

jethai的博客 657

使用Struts 2防止表单重复提交

用户重复提交表单在某些场合将会造成非常严重的后果。例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次。因此,重复提交表单会对你的系统带来逻辑影响,必须采取一些措施防止这类情况的发生。   用户重复提交同一个HTML表单的原因有: 一、快速多次点击了提交按钮;二、提交表单后按下浏览器的刷新按钮。 ...

angcong3485的博客 118

struts2之表单重复提交问题

  概述   表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交.  在不刷新表单页面的前提下:  多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 "提交按钮". 在控制器响应页面的形式为转发情况下,若已经提交成功, 然后点击 "刷新(F5)“ 重复提交的缺点: 加重了服务器的负担 可能导致错误操作.      Struts2 解决表单重复提...

langdashu 246

Struts2防止表单重复提交

Struts2防止表单重复提交环境搭建、工程创建略去,有兴趣的可以参考 环境搭建的步骤 先大致讲一下思路:我会建一个简单的页面做提交表单 表单只包含两项内容,提交给一个action处理,当表单提交 成功我们跳转到一个页面,此时按下F5重复提交表单,让 Struts2帮我们拦截这个重复提交的请求!一、按照惯例,先建页面(index.jsp)<%@ page language="java" i

浪丶荡 384

使用Struts2的token机制和Cookie来防止表单重复提交

Struts2的token机制防止表单重复提交: 首先需要在提交的jsp页面(要使用token机制,必须使用struts2提供的标签库)加上    这段代码,然后在struts.xml里面需要进行如下配置: class="com.xiaoluo.struts2.TokenAction"> /tokenSuccess.jsp

LeefengBoy的博客 1129
上一篇: Struts2中action接收参数的三种方法及ModelDriven和Preparable接口结合JAVA反射机制的灵活用法...
下一篇: Spring3核心技术之AOP动态代理
chifancui9836
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值