`
guofengcn
  • 浏览: 51038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2 action 执行两次的问题

    博客分类:
  • java
阅读更多

    今天遇到了一个很棘手的问题,也是个相当愚蠢的问题!

    发现struts的action总是会执行两次,刚开始怎么都没想明白,还以为是hibernate的lazy的问题,再后来上网查找原因,发现也有别人遇到过这类问题,有些人的说法是因为在jsp页面中比如在引CSS或JS的时候SRC=“”的原因……

    查找了一下,排除掉!后来在Q群里问,也是没找到原因。后来经过排查发现还有个方法也是每次都在运行,这才恍然大悟,原来我的方法竟然是以getXXX开头的!晕死……get方法在action中肯定是会被执行的啊!

    换个名字,一切搞定!既不是hibernate的原因,更不是json的原因~

    很愚蠢的错误,切记切记!!!

分享到:
评论

相关推荐

    struts1和struts2的区别

    #### Action执行过程 - **Struts1**: 支持为每个请求定义一组处理器(RequestProcessors),但这些处理器对所有Action都是一样的。 - **Struts2**: 支持为每个Action定义不同的拦截器堆栈(Interceptor Stacks)...

    struts2中result类型之redirectAction

    在Struts2中,Result是Action执行后控制流程的重要组件,它定义了Action执行完毕后如何转发或重定向到一个新的页面。"redirectAction"是Struts2中的一种Result类型,专门用于实现HTTP级别的重定向。 重定向是一种...

    struts与struts2的区别

    Struts和Struts2是两种不同的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(模型-视图-控制器)架构的Web应用程序。虽然名字相似,但两者在设计哲学、功能特性以及实现方式上有着显著的区别。 **1. ...

    Struts2+Freemark

    Struts2和FreeMarker是两种在Java Web开发中广泛使用的开源框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求,管理业务逻辑,而FreeMarker则是一个模板引擎,负责生成动态HTML或其他...

    Struts2面试题及答案

    ### Struts2面试题及答案解析 #### 一、Struts2框架执行流程与核心组件 **题目背景:** 在Struts2框架中,FilterDispatcher是核心组件之一,它负责处理用户请求,并调用相应的Action进行业务逻辑处理。相较于...

    struts2学习笔记.doc

    - **Struts2的起源**:Struts2最初由WebWork和Struts1的核心开发者联合创建,其目的是为了弥补这两个框架的不足之处。 **1.2 开发环境配置** - **IDE选择**:Eclipse 3.2 + MyEclipse 5.5。 - **Servlet Container*...

    struts2整合hibernate

    2. **Struts2配置**:在struts.xml配置文件中,定义Action类及其对应的执行方法,同时配置结果类型(Result),以便调用DAO进行数据操作。 3. **Hibernate配置**:创建hibernate.cfg.xml配置文件,设置数据库连接...

    Struts2防止重复提交解决方案

    拦截器是Struts2的核心组件之一,它们基于AOP(面向切面编程)思想,允许开发者在Action执行前后插入自定义逻辑。在`struts-default.xml`中,预定义了一些拦截器,比如`params`用于参数绑定,`validation`用于验证,...

    JCaptcha4Struts2快速使用指南

    在这个配置中,`JCaptchaValidationInterceptor`会被插入到自定义的拦截器栈中,确保在Action执行之前验证验证码。 **使用注意事项** - 确保只在一个Action上使用一种方式(继承或拦截器),否则可能会因为重复...

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

    当用户发送请求时,Struts2会根据配置的Action Mapping找到对应的Action执行,然后根据Action的返回值决定跳转到哪个Result。 在登录场景下,通常会有一个LoginAction,它包含接收用户输入、验证用户名和密码等方法...

    简单理解Struts2中拦截器与过滤器的区别及执行顺序

    Struts2 中的拦截器(Interceptor)和过滤器(Filter)是两个不同的概念,虽然它们都可以影响请求的处理过程,但它们的作用域、执行顺序和实现机制都有所不同。 拦截器(Interceptor) 拦截器是 Struts2 框架中的...

    struts2 包中内容,除了lib

    1. **学习框架原理**:通过阅读源码,开发者可以深入了解Struts2如何处理请求,如何执行Action,以及如何实现MVC架构。 2. **调试和优化**:在遇到问题或需要定制功能时,源代码提供了第一手资料,可以帮助开发者...

    struts上传问题研究

    Struts2曾经因这个问题引发过严重的安全漏洞,攻击者可以通过构造特定的请求参数,导致任意文件被读取或执行。因此,对上传文件的存储路径和命名规则也需要严格控制,避免使用动态拼接的路径。 在工具方面,有一些...

    hibernate+struts2分页代码

    - 需要在Struts2的配置文件(struts.xml)中定义Action,包括其结果类型和接收的参数。 - 还可能需要配置拦截器来处理分页相关的逻辑,例如防止非法的页码请求。 6. **最佳实践**: - 分页参数应进行校验,防止...

    struts2源码下载啦

    通过对Struts2的源码学习,我们可以更深入地理解其内部工作流程,如Action的调度、拦截器的执行顺序、OGNL的解析过程等,这对于优化性能、调试问题或者开发自定义组件都非常有帮助。源码阅读不仅可以提高我们的编程...

    Struts2解决表单重复提交

    除了直接使用redirect,还可以使用redirectAction,并在result中配置actionName参数,这样提交后会通过另一个action来执行,从而避免了直接刷新带来的重复提交问题。 在具体实现上,通过修改result元素的type属性来...

    struts2.jar

    Action执行完毕后,会返回一个Result,定义了如何展示处理结果。通过配置Action和Result,可以灵活控制应用程序的行为。 2. **拦截器(Interceptors)**:拦截器是Struts2的另一个关键特性,它们按预定义的顺序在...

    struts2令牌

    例如,在`struts-default.xml`文件中定义了一个默认的拦截器栈`defaultStack`,其中包含了`actionTokenInterceptor`和`TokenSessionStoreInterceptor`两个拦截器,用于执行令牌的验证工作。 ```xml ...

    struts2批量下载

    - `downloadList`:当用户访问`downloadList.action`时,会执行`cn.edu.cuit.disasterSystem.web.struts2.action.DownloadListAction`类,并根据结果类型(success或error)跳转到对应的JSP页面。 - `download`:...

Global site tag (gtag.js) - Google Analytics