`
lxj506391157
  • 浏览: 1921 次
  • 性别: Icon_minigender_2
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts1.x中Token的使用

阅读更多

今天做场次安排的添加和显示时,遇到这样一个问题。页面上只有一个添加的连接,点击连接后进入Action中的add方法执行添加操作。然后返回列表显示页面,但刷新页面时,又会重新添加一遍。知道这样的原因是因为从后台返回的时候用的是forward,但是因为我还要给页面返回信息,所以必须用forward。说到这,其实我对forwardredirect的区别还是不懂。

    然后问了同事,他们说可以在页面上封装一个form  ,

<html:form action="/ccap.do" method="POST" >













然后就会产生一个Token令牌,在后台会有个this.isTokenValid()来判断是否重复提交。但之前必须先在这个页面之前保存一个Token. 

我的流程是这样的,先到objList方法中查询ccap,然后返回到ccapList页面,如果页面上没有数据,则添加数据。 

 添加数据之前,先重新构建一个form,这个Form会将Token隐藏起来发送到Action中。

 

<action attribute="ccapForm" name="ccapForm" 
scope="request" parameter="method" 
path="/ccap" type="org.springframework.web.struts.DelegatingActionProxy"> 
</ation>

 

 struts中必须有个ActionForm和前台的form对应。

 

 

import org.apache.struts.action.ActionForm;

public class xxForm extends ActionForm {

 

}

 

 后台的验证:

public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception{ 
try{ 
  if(this.isTokenValid(request)){ 
        //添加操作 
        this.resetToken(request); 
   } 
}catch(Exception e){
      e.printStackTrace();
      request.setAttribute("msg", "添加失败!");
     } 
    return mapping.findForward("success");
 } 


 

 

 

 

 

 

分享到:
评论

相关推荐

    Struts1.x令牌(Token)的使用.rar

    Struts1.x是一个非常经典的Java Web开发框架,它在企业级应用中被广泛使用。而Struts1.x的令牌机制(Token)则是防止重复提交、跨页请求攻击的重要手段。在此,我们将深入探讨Struts1.x令牌的使用方法及其背后的原理...

    Struts1.x实现防止提交的Token使用示例

    以下是对Struts1.x中使用Token防止提交的详细说明: 1. **理解Token机制**: Token机制的核心思想是在客户端和服务器之间建立一种绑定关系,每个提交请求都必须携带一个服务器生成并已存储的唯一令牌。如果令牌...

    struts2源代码分析

    Struts2是一个强大的Java web应用程序框架,源自Struts1.x和WebWork的融合。它并非Struts1.x的简单延续,而是基于WebWork的核心构建,因此具有更稳定、高效的性能。Struts2的设计思路和工作流程与Struts1.x有很大的...

    Struts2源码分析

    Struts2是一个流行的Java web应用程序框架,它源自Struts1.x和WebWork的结合,具有稳定性和高性能。在深入理解Struts2的工作原理时,源码分析是必不可少的步骤。Struts2的核心设计理念和设计模式相比Struts1.x有了...

    struts2学习笔记.doc

    - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序的开发过程。 - **Struts2的起源**:Struts2最初由WebWork和Struts1的核心...

    struts 1的标签的用法详细

    在Struts 1中,标签库是实现视图层与控制器层交互的重要工具,使得开发者可以方便地在JSP页面中处理用户输入、展示数据和控制流程。 ### 一、STRUTS1.X 工作原理 Struts 1 的工作流程主要包括以下几个步骤: 1. ...

    Struts2.1学习笔记

    - **添加JAR文件**:为了使用Struts2框架,需要在项目中添加一系列必要的JAR文件。这些文件通常包括`struts2-core-2.x.x.jar`、`xwork-2.x.x.jar`、`ognl-2.6.x.jar`等,其中: - `struts2-core-2.x.x.jar`包含了...

    struts2-s标签

    这些标签用于条件判断,类似于 Struts 1.x 中的 `logic:present` 或 `logic:notPresent`。 **示例:** ```xml != null}"&gt; Welcome, &lt;s:property value="user.name"/&gt; != null}"&gt; Hello, guest! Please log ...

    struts2.0的总结

    相较于 Struts1.x 版本,Struts2 提供了更强大的功能与灵活性,它不仅支持传统的表单提交方式,还提供了更为灵活的 Ajax 支持,以及更丰富的标签库等特性。 #### 二、Struts2架构与配置 1. **基础配置**:Struts2 ...

    Struts2的工作机制及分析

    Struts2是Struts1.x和WebWork两个社区合作的结果,可以认为是WebWork的一个进化版本,继承了WebWork的核心机制并在此基础上进行了优化和封装。 在Struts2的工作机制中,FilterDispatcher是一个关键组件,它是一个...

    Struts2的总结和Strut2集成Spring

    OGNL(Object-Graph Navigation Language)是Struts2中使用的表达式语言,用于访问Java对象的属性和调用方法,增强了视图层的表达能力和灵活性。 #### 表达式语言主要好处 OGNL的主要好处包括简洁的语法、强大的...

    struts的架包分享

    因此,在使用Struts 2时,开发者必须关注并修复框架的安全更新,同时采用适当的防御策略,如使用参数化查询防止SQL注入,使用CSRF token防止跨站请求伪造等。 **版本:** 在你提供的压缩包文件中,看到的是`struts-...

    struts2 标签库 帮助文档

    1. &lt;s:bean name=""&gt;&lt;/s:bean&gt;-----类似于struts1.x中的,JavaBean的值 C: 1. &lt;s:checkbox&gt;&lt;/s:checkbox&gt;-----复选框 2. &lt;s:checkboxlist list=""&gt;&lt;/s:checkboxlist&gt;-----多选框 3. &lt;s:combobox list=""&gt;&lt;/s:...

    java ee应用技术知识要点.doc

    - Spring支持在切入点表达式中使用`或`(or)和`与`(and)运算符。 12. **排序方向**: - `asc`表示升序排列,`desc`表示降序排列。 13. **Spring依赖注入方式**: - Spring提供了设值注入(setter injection...

    java web demo

    `Struts1.x令牌(Token)的使用.rar`则涉及Struts 1.x框架中的令牌机制,这是一种防止重复提交和跨站请求伪造(CSRF)的安全措施。在表单提交过程中,Struts会生成一个唯一的令牌并存储在session中,同时将其作为隐藏...

    struts_tag

    - 在Struts1.x中,`&lt;s:bean&gt;`用于实例化JavaBean并将其值绑定到页面上下文。在Struts2中,这种功能通常通过Action类和Ognl表达式实现。 C. `&lt;s:checkbox&gt;` 和 `&lt;s:checkboxlist&gt;` - `&lt;s:checkbox&gt;` 创建一个复选框...

    struts2标签大全

    Struts1.x中的标签,用于将JavaBean的值插入到JSP页面中。 ```xml ``` #### 8. `&lt;s:checkbox&gt;` - 单个复选框 创建单个复选框。 ```xml ``` #### 9. `&lt;s:checkboxlist&gt;` - 复选框列表 创建一组复选框列表。 ```...

    struts2标签整理

    该标签用于显示Struts1.x中JavaBean的属性值。 ```jsp ``` ##### 8. `&lt;s:checkbox&gt;` - 复选框标签 用于创建一个复选框。 ```jsp ``` ##### 9. `&lt;s:checkboxlist&gt;` - 复选框列表标签 用于创建一组复选框列表。 ``...

    2014—SHH面试题

    - **防止重复提交**:Struts 1.x中使用Token机制,保存一个唯一的Token,如果提交时Token未改变,则认为是重复提交。Struts 2使用内置的Token拦截器实现类似功能。 - **请求验证失败后变量丢失**:可以将ActionForm...

Global site tag (gtag.js) - Google Analytics