gpt4 book ai didi

java - 在 Google App Engine 上的 session 中维护列表对象

转载 作者:行者123 更新时间:2023-12-01 15:15:19 27 4
gpt4 key购买 nike

我在 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 :(

最佳答案

您确定正确获取 session 吗?我的理解是你应该这样获取它:

this.getThreadLocalRequest().getSession();

这就是我所做的和推荐的Google AppEngine Session Example

这里也有更多讨论

When and how should I use a ThreadLocal variable?

这显示了潜在的缺点(内存泄漏)...不确定它是否适用,尽管我提到它只是为了引用。

关于java - 在 Google App Engine 上的 session 中维护列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11694143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com