在Action中通过两种方式往session中存取数据的一个问题
在研究ServletActionContext.getRequest().getSession()和ActionContext.getcontext().getSession()两者的区别和联系时发现个问题,就是第10句的输出,这里还有test=testValue这个键值对,参考第15句的输出,这个地方该怎么理解呢?我感觉没完全想明白,还请各位给分析一下,先谢谢了。
xxxAction.java
1 Map session1 = ActionContext.getContext().getSession();
2 HttpSession session0 = ServletActionContext.getRequest().getSession();
3 session0.setAttribute("test", "testValue");
4 System.out.println("ServletActionContext.getRequest().getSession():" + session0);
5 System.out.println("ActionContext.getContext().getSession():" + session1);
6 System.out.println("session1.get(test):" + session1.get("test"));
7 System.out.println("session0.getAttribute(test):" + session0.getAttribute("test"));
8 ServletActionContext.getRequest().getSession().removeAttribute("test");
9 System.out.println("ServletActionContext.getRequest().getSession().removeAttribute(test) complete.");
10 System.out.println("ActionContext.getContext().getSession():" + session1);
11 System.out.println("session1.get(test)" + session1.get("test"));
12 System.out.println("session0.getAttribute(test):" + session0.getAttribute("test"));
13 session1.remove("test");
14 System.out.println("ActionContext.getContext.getSession.remove(test) complete.");
15 System.out.println("ActionContext.getContext().getSession():" + session1);
输出:
ServletActionContext.getRequest().getSession():org.apache.catalina.session.StandardSessionFacade@16023aaa
ActionContext.getContext().getSession():{test=testValue}
session1.get(test):testValue
session0.getAttribute(test):testValue
ServletActionContext.getRequest().getSession().removeAttribute(test) complete.
ActionContext.getContext().getSession():{test=testValue}
session1.get(test)null
session0.getAttribute(test):null
ActionContext.getContext.getSession.remove(test) complete.
ActionContext.getContext().getSession():{}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论