我正在尝试检索由servlet存储的会话变量。在应用程序中,servlet将用户重定向到外部认证URL(例如Windows Live auth)...并且在重定向之前,servlet将一些值保存为会话变量。
用户在外部auth url上进行身份验证后,现在他被重定向到我的应用程序的第二页。第二页可以是jsp或servlet ..
我的问题是,是否可以在第二页中检索最初由原始servlet存储的会话变量?无论第二页是jsp还是servlet,我都能获得会话变量吗?
如果无法获得以这种方式存储的会话变量,那么我如何获得这些变量(即请建议另一种方法)....
答案 0 :(得分:1)
是的,如果发出会话变量的servlet(如果是这种情况,我不清楚)在同一个Web应用程序(WAR)中,您可以通过调用HttpServletRequest.getSession().getAttribute("someName");
来简单地检索会话范围的变量。这适用于servlet和JSP。
顺便说一句:如果您的会话由cookie维护,这将非常有效。如果您使用URL重写,则它取决于Windows Live API,在这种情况下,Windows Live必须在查询字符串中包含重定向回应用程序的会话ID参数。
答案 1 :(得分:0)
您必须确保会话cookie或URL重写有效。届时应该保留会议。