struts2中使用token避免重复提交
<action name="register" class="org.sunxin.struts2.action.RegisterAction">
<!-- 配置异常映射,当RegisterAction抛出Exception异常时,向用户显示error.jsp页面-->
<exception-mapping result="error" exception="java.lang.Exception"/>
<result name="input">/pages/register.jsp</result>
<result name="success">/pages/success.jsp</result>
<result name="error">/pages/error.jsp</result>
<result name="invalid.token">/pages/register.jsp</result>
<result name="wait">wait.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token">
<param name="excludeMethods">input</param>
</interceptor-ref>
</action>
2.在页面中加
<s:actionerror/>
<s:form action="register" method="post">
<s:token></s:token>
</s:form>
3.<interceptor-ref name="token"/>
<interceptor-ref name="token-session"/>
<!--注意struts2.0 拦截器名字为token-session struts2.1.2 已经更改为tokenSession -->
token: 在活动中检查合法令牌(token), 防止表单的重复提交; 在<s:actionerror/>会产生提示信息
token-session: 同上, 但是在接到非法令牌时将提交的数据保存在session中; 不会在<s:actionerror/>会产生提示信息
只会在后台发出警告并处理,如下:
警告: Form token KO80SIJW4F84034NG5HM1ZBUGOVNY64D does not match the session token null.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」