【问题标题】:Sharing session between Servlets and Struts 2 application issue [duplicate]Servlet 和 Struts 2 应用程序之间的共享会话问题 [重复]
【发布时间】:2016-09-13 08:42:49
【问题描述】:

我正在我的操作类中保存一个会话属性并在我的 servlet 中检索它。

但是,我似乎偶尔会遇到会话属性丢失的问题。

如何调试这个问题?

Struts 2 动作代码

private Map<String, Object> map ;

public void setSession(Map<String, Object) session) {
   map = session ;
}

map.put("MY_OBJECT", object);

Servlet 代码

HttpSession session = request.getSession(false);
Object obj = session.getAttribute("MY_OBJECT");

【问题讨论】:

  • 您是否调试过您的代码以检查是否正在使用同一个会话,以及您是否真的得到了传递给setSession()SessionMap,以及调用的顺序?
  • 如何调试到 struts 框架?
  • 这个问题偶尔会发生,我一直在使用 IE 开发者工具来跟踪会话 cookie 值。虽然,我知道会话似乎被替换了,但我不知道为什么。
  • 你调试一个 struts 应用程序就像你调试任何其他应用程序一样,例如通过使用调试选项启动 JVM,让调试器通过某个端口连接到它。 Ofc 你还需要 struts 源代码来对 struts 本身进行有意义的调试。至于 cookie 替换,请查看 cookie 路径、安全标志等设置。
  • 我的 cookie 路径和安全 cookie 没有设置。

标签: java jsp session servlets struts2


【解决方案1】:

请尝试为此使用 SessionAware 接口实现。如需更多帮助,请参阅以下链接。

http://www.codejava.net/frameworks/struts/working-with-httpsession-in-struts2-a-login-example

【讨论】:

  • 我已经在用了。
猜你喜欢
  • 2011-08-16
  • 2014-09-30
  • 1970-01-01
  • 2021-06-26
  • 2013-02-15
  • 2023-03-27
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
相关资源
最近更新 更多