0

我有一个网站,其中有一个登录表单。如果登录成功,我将对象用户放入会话中,然后以这种方式进入另一个页面(其中我需要会话属性):

-Java Servlet-

 request.getSession(true).setAttribute("utente", u);
 request.getSession(true).setAttribute("abbonamento", a);
 request.getRequestDispatcher("HomeUtente.jsp").forward(request, response);

-Jsp页面-

    <%
    Utente u = null;
    Abbonamento a = null;
    try {
        u = (Utente) session.getAttribute("utente");
        a = (Abbonamento) session.getAttribute("abbonamento");
    } catch (Exception e) {
        a = null;
        u = null;
        e.printStackTrace();
    }
%>

现在,如果我这样做一次就可以了,但是如果我刷新页面,似乎会话将被删除。

我猜这是因为当我刷新页面(在调试模式下)时,a 和 u 都将为空。

任何想法?

4

1 回答 1

-1

Java 会话 -

HttpSession getSession(boolean create) -

返回与此请求关联的当前 HttpSession,或者,如果没有当前会话并且 create 为 true,则返回一个新会话。

因此,在您使用的程序中-

request.getSession(true)-

它总是返回一个新会话,并且以前的会话变量被删除。

您也可以查看以下链接以更好地理解 -

如何检查会话是否存在?

于 2013-03-10T19:45:28.533 回答