会话不起作用 - GAE / J.

时间:2012-05-23 03:05:48

标签: google-app-engine session

我对GAE / J开发很新,并尝试使用GAE Seesion。不知何故,当我尝试检索存储在会话中的值时,它仅返回null。这就是我所拥有的。

我有loginservlet,我将String变量设置为session。

HttpSession hs=req.getSession(true);
if(hs.isNew()){
hs.setAttribute("logininfo", "mylogininfo");
}

然后我尝试在JSP页面中检索此信息,如下所示 -

<%
HttpSession hs = request.getSession(false);
String logininfo = (String) hs.getAttribute("logininfo");
%>

我总是将“logininfo”字符串视为null - 不确定原因。

我在appengine-web.xml

中启用了会话
<sessions-enabled>true</sessions-enabled>

上面只是我试图运行的一个试验示例,我真的想从servlet将'accessToken'传递给JSP页面以进行facebook登录。

1 个答案:

答案 0 :(得分:1)

我不知道您的网页被调用的顺序,但最可能的罪魁祸首是使用isNew()方法。

当服务器向用户浏览器发送cookie时建立会话。这是在授权或未授权的任何页面的第一次请求时发生的。

因此,isNew()仅在对您的任何网页的第一次请求时才为真,而用户尚未收到任何Cookie。在任何连续请求(即使几天后,取决于GAE管理员中的Cookie Expiration:设置),它将是错误的。