繁体   English   中英

在Google App Engine的会话中维护列表对象

[英]Maintaining List Object in Session on Google App Engine

我在GAE中遇到一个独特的问题。 请注意,我在下面描述的问题仅是在我将代码部署到GAE时,但是在本地运行良好。

我有一个servlet代码,该代码在session属性中设置一个List对象,并将请求转发到JSP,如下所示:

        HttpSession session=request.getSession();
        session.setAttribute("msgListS", msgList);
        request.getRequestDispatcher("/WEB-INF/jsp/downloadpdf.jsp").forward(request, response);

在jsp中。...我正在获取列表并打印其大小,然后单击链接,然后调用另一个servlet。 JSP代码如下:

        List<Message> msgList=(List<Message>)session.getAttribute("msgListS");
        out.println("The total messages are : "+msgList.size());
        session.setAttribute("msgListS", msgList);  

现在,在最后一个servlet中,我再次获取List对象,但是这里的大小与列表的实际大小有所不同。 在jsp中,它显示正确,但是在此servlet中,它的大小显示为1。请帮助...。servlet代码:

       HttpSession session=request.getSession(false);
       List<Message> msgList=(List<Message>)session.getAttribute("msgListS");
       out.println("The total messages are : "+msgList.size());


    On local machine it is working absolutely fine but GAE has above problem :(

您确定您正确地获得了会话吗? 我的理解是您应该这样获得它:

this.getThreadLocalRequest().getSession();

那就是我的工作,推荐的Google AppEngine会话示例

这里也有更多讨论

什么时候以及如何使用ThreadLocal变量?

这表明存在潜在的负面影响(内存泄漏)...尽管我仅出于参考目的而提及它,但不确定它是否适用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM