代码之家  ›  专栏  ›  技术社区  ›  Arun Sudhakaran Nagma Firdose

即使会话无效,动作类对象如何可用?

  •  0
  • Arun Sudhakaran Nagma Firdose  · 技术社区  · 8 年前

    我正在使用Struts 1.2,我需要对Action类进行澄清。

    我的Action类有一个实例变量 计数 以及一个带有SOP语句的实例初始化块,它将打印 计数 (递增1)。然后,我为应用程序中的屏幕配置了这个动作类。现在,当我点击这个屏幕时,我的动作类将被执行。

    我从两个不同的浏览器访问了这个屏幕,我发现实例初始化块中的SOP只执行了一次,这表明只为两个用户创建了一个on对象。

    现在,当我从两个浏览器注销并再次登录访问同一屏幕时,实例初始化块中的SOP没有执行(因此Action类对象仍然可用)。但当我从正在运行的服务器中删除项目并再次发布时,SOP被执行。

    所以我认为动作类对象与会话无关,如果不是,那么它存储在哪里,这样即使在会话失效后,动作类对象仍然可用?

    示例操作类代码:-

    public class SampleAction  extends DispatchAction {
       private int count;
    
       {
             System.out.println(++count + " object(s) created");
       }
       /* other methods */
    }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Vasu    8 年前

    我认为Action类对象与会话无关,如果 如果不是,则存储在何处,以便即使在会话之后 获取无效的操作类对象是否可用?

    ActionServlet Action FormBean 物体。

    所以 中心控制器 行动 类对象一旦被加载(在启动期间或第一个请求到达容器时)就一直存在于容器中,直到应用程序被销毁,而不管用户会话如何。

    此外,请注意 行动 类对象与 FormBean 类对象(如 ProductFormBean , EmployeeFormBean 等等)即。, FormBean 对象绑定到每个JSP页面,当用户发出请求时,它们将被实例化(创建一个对象)并填充(JSP字段数据)。