我在会话数据中存储一个变量,从用户尝试登录到我的应用程序的servlet。现在,我想从同一应用程序中的另一个servlet中的会话中检索用户数据。
如何在第二个servlet中初始化会话变量?将“request”作为“HttpServletRequest”,我将会话变量编码为“HttpSession session = null;”或者作为 “HttpSession session = request.getSession(true);”?或者是其他方式?
请注意,在应用程序流中,用户从第一个servlet转到外部页面,从外部页面重定向到第二个servlet。 (外部页面基本上通过Google / Yahoo / Hotmail等中的oauth登录用户。)
这是否意味着我不能在这种情况下使用会话变量?我是否必须使用应用程序作用域变量?
请原谅我,如果我的问题听起来很愚蠢,今天只是我在Servlets中开始编码的第3天......
答案 0 :(得分:1)
request.getSession().setAttribute("foo", something);
应该有效。
然后您可以稍后检索数据
Object something = request.getSession().getAttribute("foo");
答案 1 :(得分:1)
Arvind的,
您使用的JSP中的:
<% Object something = request.getSession().getAttribute( "foo" ) %>
当然 - 毫不奇怪 - 与Thilo的答案非常相似......: - )
JSP代码在服务器端进行评估,因此您只需要确保JSP是从servlet链接的,例如。 servlet做了类似
的事情 response.sendRedirect( "your.jsp" )
/安德斯/