簡體   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