在我们使用 Struts 1 的 Java Web 应用程序中,我们有很多代码基本上是这样做的:
HttpSession session = httpServletRequest.getSession();
MyObject myObject = session.getAttribute(MY_OBJECT_KEY);
//code that mutates myObject - setting properties or whatever
session.setAttribute(MY_OBJECT_KEY, myObject);
我的问题:最后一行 session.setAttribute(..) 是否必要?这对我来说似乎毫无意义 - 'myObject' 和 'session.getAttribute(..)' 指的是内存中的同一位置,对吧?那么不需要重新设置会话中的属性吗?这有什么我不知道的吗?该对象未实现文档中提到的 HttpSessionBindingListener。
我觉得我需要仔细检查,因为这是在整个应用程序中完成的,我当然不想仅仅因为我正在清理代码而破坏任何东西。谢谢