`

Struts2的token的使用,用到了自定义拦截器

阅读更多

 Struts2表单

 

 

 

<s:debug/>
<s:form action="customerAction_save" method="post" namespace="/model">

             用户名:<s:fextfield name="username" /><br> <s:token/>
            密码: <s:password name="psw" /><br>
            电话:<s:textfield name="tel"/><br>
                   <s:submit value="保存" /><br>
</s:form>

 

<s:token/>
<input type="hidden" name="struts.token.name" value="struts.token"/>


<input type="hidden" name="struts.token value="1KDSLJLDJLSDJLDSDSLDSL" />

 

 ------------------------------------------

<package name="model" namespace="/model" extends="struts-default">

 <!--将token拦截器加到默认栈中-->
 <interceptors>
             <interceptor-stack name="tokenStack">
                            <interceptor-ref name="defaultStack"></interceptor-ref>

 

                          <!--将token拦截器放到默认栈后面-->
                         <interceptor-ref name="token">
                                  <!--说明只对定义的save方法拦截,如果对多个方法进行拦截,可以用逗号分开-->
                                <param name="includeMethods">save</param>

                        </interceptor-ref>
             </interceptor-stack>
 </interceptors>


    注意:上边是说 我定义了一个拦截器 tokenStack, 包含defaultStack,和token

虽然进行定义了,但是行不能用

下一步是让我在加载的时候,使用这个拦截器栈

    <default-interceptor-ref name="tokenStack"></default-interceptor-ref>

 <action name="customerAction_*" class="cn.xiaoxian.web.CustomerAction" model="{1}">
  <result name="add">/model/add.jsp</result>
  <result name="success">/model/success.jsp</result>
  <result name="edit">/model/edit.jsp</result>
  
  <!--表单重复提交 定义的错误页面-->
  <result name="invalid.token">/model/message.jsp</result>
 </action>
</package>


---------------------
message.jsp

<body>
<!--当使用struts的token实现表单重复提交的时候,在出错的jsp中,可以使用<s:actionerror/>用来显示重复提交的信息-->
<s:actionerror/><br>
重复提交
</body>

在struts-message.properties中定义的错误信息

分享到:
评论

相关推荐

    Struts2自定义拦截器实现防止重复提交

    Struts2默认提供了一些拦截器来帮助处理这个问题,但如题目所述,由于性能考虑,项目组决定不使用Struts2的标签,因此需要自定义拦截器来实现防止重复提交的功能。 自定义拦截器的实现主要分为以下几个步骤: 1. *...

    Struts拦截器及token拦截器防止重复提交例子源码

    其中,init和destroy方法会在程序开始和结束时各执行一遍,不管使用了该拦截器与否,只要在struts.xml中声明了该Struts2拦截器就会被执行。 intercept方法就是拦截的主体了,每次拦截器生效时都会执行其中的逻辑。

    JavaEE Struts2利用tokenSession防止重复提交

    4. **验证与处理**:当表单提交后,Struts2的tokenSession拦截器会自动进行token的验证。如果验证通过,业务逻辑正常执行;若失败,则会抛出异常,提示用户重新操作。 在实际应用中,我们还需要考虑一些其他情况,...

    自定义拦截器实现防止重复提交

    在实际应用中,你还需要在Struts2的配置文件(通常是`struts.xml`)中注册这个自定义拦截器,并将其应用到相应的Action上,以确保在执行Action之前先经过拦截器的检查。 总结来说,防止重复提交的自定义拦截器主要...

    struts2token回退刷新

    Struts2拦截器会检查这个令牌,确保它与服务器会话中的令牌匹配。 3. **令牌验证**:如果令牌匹配,那么表单数据会被正常处理;如果不匹配或者令牌不存在,那么表单提交将被拒绝,以此来防止重复提交或非法请求。 ...

    实现java自定义注解拦截器.docx

    以上步骤展示了如何使用Spring Boot中的自定义拦截器和自定义注解来实现对特定方法的选择性拦截。这种机制可以非常灵活地控制哪些请求需要经过额外的验证或处理,对于构建安全可控的应用程序来说非常重要。

    struts2中token限制表单多次提交

    下面将详细阐述Struts2中Token机制的工作原理、配置以及使用方法。 1. Token机制概述: Token机制是通过在客户端(浏览器)和服务器之间传递一个唯一的标识符(Token)来防止表单的重复提交。当用户首次提交表单时...

    struts2的token实现.

    1. **启用Token插件**:在Struts2的配置文件`struts.xml`中,需要启用Token拦截器栈,如下所示: ```xml &lt;package name="default" extends="struts-default"&gt; &lt;interceptor-ref name="token"&gt; &lt;!-- 是否将...

    struts2 拦截器(AOP,面向切面编程)

    **创建自定义拦截器**在Struts2中,开发者可以方便地创建自己的拦截器。首先,需要定义一个实现`com.opensymphony.xwork2.interceptor.Interceptor`接口的类,并实现其`intercept()`方法。然后,在Struts配置文件中...

    tokenSession拦截器的使用

    在Java Web应用开发中,Struts2框架提供了一种非常实用的方法来解决这个问题——通过使用`tokenSession`拦截器。相比于传统的`token`拦截器,`tokenSession`提供了更加灵活和友好的用户体验。本文将深入探讨`token...

    struts2_token控制刷新重复提交

    3. **验证Token:** 在处理表单提交的Action方法中,Struts2的Token拦截器会自动进行Token验证。如果验证失败(比如因为用户刷新页面),拦截器会抛出一个`TokenException`,你可以捕获这个异常并处理。 ```java ...

    struts 拦截器实现权限拦截

    在Struts2中,通过自定义拦截器,我们可以轻松地实现这一功能。 首先,我们需要理解Struts2拦截器的工作原理。拦截器是基于Java的动态代理模式实现的,它们形成一个拦截器栈,当请求到达Action时,会按照栈中定义的...

    struts令牌token实例

    1. **配置Struts2的Token拦截器:** 在struts.xml配置文件中,需要将`token`拦截器加入到默认或者特定的Action配置中。例如: ```xml &lt;interceptor name="token" class="org.apache.struts2.interceptor....

    自定义拦截器实现防止重复提交-5页.pdf

    然而,如果项目组决定不使用Struts2的内置标签,那么就需要自定义拦截器来达到防止重复提交的目的。 1. **自定义拦截器的实现** - 创建一个新的拦截器类,比如`TokenAtionInterceptor`,该类需要继承自Struts2的`...

    CXF3.1.16 +Spring4 +MyBatis + Maven自定义拦截器 WebService实例源码下载

    "CXF3.1.16 +Spring4 +MyBatis + Maven自定义拦截器 WebService实例源码下载" 这个标题揭示了该项目的核心技术栈,包括: 1. CXF 3.1.16:这是一个开源的服务框架,用于构建和开发服务,支持SOAP和RESTful Web服务...

    struts2拦截器

    ### Struts2拦截器详解 #### 一、拦截器的概念与意义 拦截器(Interceptor)在Struts2框架中扮演着至关重要的角色。它的工作原理类似于过滤器(Filter),能够拦截用户请求,并对其进行预处理或者后处理。拦截器...

    struts2内置拦截器简介

    ### Struts2内置拦截器简介 Struts2框架在实现MVC模式时,为了更好地管理请求处理过程中的各个阶段,引入了拦截器机制。...通过对内置拦截器的合理配置和使用,可以使Struts2应用更加健壮和高效。

    vue中前端利用refreshToken结合axios拦截器实现token的无感刷新

    1、响应拦截器处理401权限错误。 2、防止重复请求refreshToken接口。 3、同时多个请求返回401,需要刷新token。 阅读建议:此资源以简单的demo演示了RefreshToken使用的全过程,介绍了基本的思路,所以在学习的过程...

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

    首先,我们需要在Struts2的配置文件(struts.xml)中添加Token拦截器。这个拦截器会处理Token的生成和验证过程。例如: ```xml &lt;interceptor name="token" class="org.apache.struts2.interceptor....

    struts2实现的简单登陆 附加拦截器防止重复提交

    为了使用自定义的拦截器,我们需要在struts.xml配置文件中声明它,并将其加入到默认的拦截器栈或自定义的拦截器栈中。例如: ```xml &lt;!-- 其他默认的拦截器 --&gt; &lt;!-- ... --&gt; &lt;!-- 配置Action --&gt; ...

Global site tag (gtag.js) - Google Analytics