【问题标题】:Best and recommended approach to get session in struts2?在struts2中获得会话的最佳和推荐方法?
【发布时间】:2011-07-15 07:59:12
【问题描述】:

struts2 中获取会话对象的方法有很多。从以下获取会话对象的最佳和推荐方法是哪一种?

  1. ActionContext
  2. SessionAware
  3. ServletRequestAware 和会话之后从请求对象获取请求。

现在我使用 ServletRequestAware 在所有操作中获取会话对象,即使不需要请求对象。

哪个最好,为什么最好?

提前致谢

【问题讨论】:

    标签: session struts2 actioncontext


    【解决方案1】:

    实施SessionAware 是首选,尽管您也可以通过您所说的其他方式访问会话。
    通过实现SessionAware,您可以让struts2 有机会将会话属性(即映射)注入到您的操作中。这使您的代码保持干净,不会耦合到底层 servlet 上下文,并且还使测试更容易,因为您可以将任何映射对象传递给具有所需属性的操作。 此外,对此会话映射所做的任何更改都将反映在真实的会话对象上。

    【讨论】:

    • 感谢 doctrey 的有用解释。我能否在不使用 ServletRequestAware 的情况下从 SessionAware 的会话对象中获取 servletContext,因为我需要获取服务器的真实路径?跨度>
    • @yuvaraj 不客气。如果您需要访问 servletContext,只需实现 ServletContextAware
    • 谢谢你的提示,博士
    【解决方案2】:

    同意doctrey。使您的操作实现会话感知,并创建会话变量(即 Map 变量)。该变量可以像任何普通变量一样对待。代码看起来会更整洁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      相关资源
      最近更新 更多