我对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登录。
答案 0 :(得分:1)
我不知道您的网页被调用的顺序,但最可能的罪魁祸首是使用isNew()
方法。
当服务器向用户浏览器发送cookie时建立会话。这是在授权或未授权的任何页面的第一次请求时发生的。
因此,isNew()
仅在对您的任何网页的第一次请求时才为真,而用户尚未收到任何Cookie。在任何连续请求(即使几天后,取决于GAE管理员中的Cookie Expiration:
设置),它将是错误的。