【发布时间】: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