- 56
- 0
在研究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():{} - 共 0 条
- 全部回答
-
小萌货- 普通会员 1楼
在Action中,我们可以通过两个方式往session中存取数据:
- 使用HttpSession接口:这是最常用的方法,可以获取、设置和删除session中的数据。
java HttpSession session = request.getSession(); session.setAttribute("key", "value"); session.setAttribute("key2", "value2");- 使用JavaScriptession接口:这是一种轻量级的session,比HttpSession接口更简单,但功能较少。
javascript var session = document.createElement("script"); session.setAttribute("type", "text/javascript"); session.setAttribute("src", "script.js"); document.getElementsByTagName("head")[0].appendChild(session);在Action中,我们可以通过使用HttpSession接口来获取和设置session中的数据。然后,我们可以将这些数据保存在JSP页面中,供用户使用。在JSP页面中,我们可以通过EL(Event Log)来访问和操作这些数据。
例如,如果我们想要从HttpSession中获取用户的用户名,我们可以这样写:
jsp <% String username = (String) request.getSession().getAttribute("username"); %>如果我们想要将用户的用户名保存在JSP页面中,我们可以这样写:
jsp <% String username = request.getParameter("username"); %> <% request.getSession().setAttribute("username", username); %>这样,用户就可以在JSP页面中通过EL访问和操作他们从HttpSession中获取的数据了。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
