java-如何初始化第二个servlet中的会话(以获取会话变量中第一个servlet存储的数据)

时间:2011-07-27 09:04:18

标签: servlets initialization session-variables

我在会话数据中存储一个变量,从用户尝试登录到我的应用程序的servlet。现在,我想从同一应用程序中的另一个servlet中的会话中检索用户数据。

如何在第二个servlet中初始化会话变量?将“request”作为“HttpServletRequest”,我将会话变量编码为“HttpSession session = null;”或者作为 “HttpSession session = request.getSession(true);”?或者是其他方式?

请注意,在应用程序流中,用户从第一个servlet转到外部页面,从外部页面重定向到第二个servlet。 (外部页面基本上通过Google / Yahoo / Hotmail等中的oauth登录用户。)

这是否意味着我不能在这种情况下使用会话变量?我是否必须使用应用程序作用域变量?

请原谅我,如果我的问题听起来很愚蠢,今天只是我在Servlets中开始编码的第3天......

2 个答案:

答案 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" )

/安德斯/