Session 在struts2中获得会话的最佳推荐方法?

Session 在struts2中获得会话的最佳推荐方法?,session,struts2,actioncontext,Session,Struts2,Actioncontext,在struts2中获取会话对象的方法有很多。以下哪种方法是获取会话对象的最佳推荐方法 ActionContext SessionAware 从ServletRequestAware获取请求,并在会话后从请求对象获取请求 现在,我使用ServletRequestAware在所有操作中获取会话对象,即使不需要请求对象 哪一个最好,为什么最好 提前感谢尽管您也可以通过其他方式访问会话,但最好实现SessionAware。 通过实现SessionAware,struts2有机会将会话属性(即映射)注入到

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

  • ActionContext
  • SessionAware
  • ServletRequestAware获取请求,并在会话后从请求对象获取请求
  • 现在,我使用ServletRequestAware在所有操作中获取会话对象,即使不需要请求对象

    哪一个最好,为什么最好


    提前感谢

    尽管您也可以通过其他方式访问会话,但最好实现
    SessionAware

    通过实现
    SessionAware
    ,struts2有机会将会话属性(即映射)注入到您的操作中。这使您的代码与底层servlet上下文的耦合保持干净,并使测试更容易,因为您可以将任何映射对象传递给具有所需属性的操作。
    此外,对该会话映射所做的任何更改都将反映在实际会话对象上。

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

    感谢doctrey博士的有用解释。。我是否可以在不使用ServletRequestAware的情况下从SessionAware的会话对象获取servletContext,因为我需要获取服务器的真实路径?@yuvaraj不客气。如果您需要访问servletContext,只需实现
    ServletContextAware
    。谢谢您的提示,博士