0 0

Struts2中关于ActionContext使用ThreadLocal问题10

Struts2中,一个Http请求到来就创建对应的ActionContext,而不同的请求对应不同的线程,那么ActionContext使用ThreadLocal模式实现线程安全是如何实现的呢?不同线程应该不共享ActionContext?

菜鸟求问!

 

2014年8月26日 16:50

1个答案 按时间排序 按投票排序

0 0

每个request请求都会创建一个ActionContext,该ActionContext在不同线程中不共享,是线程安全的,这是因为struts2使用了ThreadLocal来保证每个线程都有一个ActionContext变量副本,建议楼主读一下图灵出版的《struts2实战》这本教材,原理性的东西介绍的比较清晰,可以同时结合源码学习。

2014年8月26日 18:54

相关推荐

    ActionContext介绍(在Struts2中)

    总结来说,ActionContext和ServletActionContext是Struts2中处理请求和响应的关键工具,它们提供了方便的方式来访问和操作HTTP请求、会话以及应用上下文中的数据,是理解Struts2工作原理的重要组成部分。正确使用这...

    ActionContext在struts2.0中的详细应用

    总之,ActionContext是Struts2中连接Action与请求、会话、Servlet API的重要桥梁,它简化了在Action中操作这些对象的过程,同时保证了线程安全性。而ServletActionContext则是在ActionContext的基础上,提供了更直接...

    Struts2 学习 2

    了解如何在Struts2中使用Servlet API,如RequestDispatcher、HttpServletRequest和HttpServletResponse,将有助于你在特定情况下进行更底层的控制,例如处理静态资源、转发和重定向等。 通过以上五个主题的学习,你...

    Struts2权限控制

    在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程的核心组件。本知识点主要聚焦于如何利用Struts2的拦截器进行权限控制。 **一、Struts2拦截器原理** 在Struts2中,拦截器是基于Java的动态...

    struts2中action如何获取jsp页面参数1.pdf

    总的来说,在Struts2中,Action类可以通过ActionContext和ServletActionContext来获取并处理JSP页面传递的参数。ActionContext提供了基本的请求和会话访问,而ServletActionContext则提供了对Servlet API的直接访问...

    ThreadLocal原理及在多层架构中的应用.pdf

    在Struts2框架中,ActionContext充当了Action的上下文环境的角色,它保存了request、session、parameters、locale等信息。通过ThreadLocal,可以保证这些信息在Action的不同调用中保持一致,即在同一个请求的不同...

    struts2 中action 如何获取jsp 页面参数1.pdf

    总的来说,在Struts2中,通过`ActionContext`和`ServletActionContext`,开发者可以方便地获取并处理JSP页面传递的参数,以及与Servlet相关的各种对象,以实现灵活的业务逻辑控制。正确理解和使用这两个类对于编写...

    struts2源码研究

    Struts2 源码分析主要涉及其在Tomcat启动过程中的初始化步骤以及请求处理流程。首先,我们来看Tomcat启动时Struts2框架如何准备和执行。 在Tomcat启动时,Struts2的Filter文件被加载,具体是`...

    struts2源代码分析

    Struts2使用ThreadLocal变量来确保线程安全。例如,`Dispatcher`等关键组件通过ThreadLocal保存变量,为每个线程提供独立的实例,避免数据冲突。这种设计允许并发处理请求,而不会引起线程间的干扰。 5. **源代码...

    Struts通过拦截器实现登录后跳转到登录前页面

    在Struts2中,拦截器扮演着非常重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如验证、日志、事务管理等。本话题主要探讨如何利用拦截器实现在用户成功登录后,将其重定向到登录前访问的页面。 首先,...

    三大框架面试题

    【三大框架面试题】主要涉及Java中的Web开发框架,尤其是Struts2的面试知识点。这里我们详细探讨Struts2的工作流程、设计模式、拦截器与过滤器的区别以及Struts1与Struts2的对比。 首先,Struts2的工作流程如下: 1...

    JAVA三大框架面试题(2)参照.pdf

    在Struts2中,任何包含execute标识的方法的POJO对象都可作为Action使用。 2. 灵活性:Struts2比Struts1更灵活,允许Action类实现多种服务接口,且支持OGNL(Object-Graph Navigation Language),增强了数据绑定和...

    JAVA三大框架面试题(2)[定义].pdf

    如果使用了`ActionContextCleanUp`,则不会清理`Threadlocal ActionContext`;否则,会清理Threadlocals。 **Struts2的设计模式:MVC** Struts2遵循MVC模式,其中: - Model(模型):业务逻辑组件,由用户自定义...

    JAVA三大框架面试题.pdf

    如果使用了ActionContextCleanUp,Threadlocal ActionContext可能不会被清理。 2. **Struts2的设计模式**: - Struts2遵循MVC模式,其中ActionServlet负责处理请求,ActionForm存储用户输入,Action执行业务逻辑,...

    Xwork的源码

    通过深入学习Xwork的源码,我们可以更深入地理解Struts2框架的工作原理,这对于我们优化性能、调试问题以及扩展功能都有着极大的帮助。无论是对Web开发初学者还是经验丰富的开发者,理解并掌握这一部分知识都是非常...

    xwork-2.0.4 源码

    在多线程环境下,ActionContext通过ThreadLocal保证了每个线程拥有独立的上下文,避免了数据的混乱。 五、配置与依赖注入 xwork的配置文件(通常为struts.xml)用于定义Action、Interceptor及其关系。通过XML配置...

Global site tag (gtag.js) - Google Analytics