2013-03-10 73 views
0

我有一個網站,我有一個登錄表單。如果登錄全成我把目標用戶到會話和我在另一個頁面去(在我需要的會話屬性)以這樣的方式頁面刷新後Java會話被刪除

-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都將爲空。

有什麼想法?

+0

如何確認會話被刪除? – 2013-03-10 19:40:18

+0

@BheshGurung我想這是因爲當我刷新頁面時(在調試模式下)a和u都將爲空。 – Martina 2013-03-10 20:13:07

+0

發佈您的servlet和JSP的完整代碼以獲得一些線索。 – 2013-03-11 10:28:08

回答

-1

Java會話 -

HttpSession getSession(boolean create) -

返回與此請求關聯的HttpSession的電流,或者如果沒有當前會話,並創建爲true,則返回一個新的會話。

所以在你的程序,你正在使用 -

request.getSession(true) -

它總是返回一個新的會話和以前的會話變量都將被刪除。

還可以查看以下鏈接更好的理解 -

How to check if session exists or not?

+1

僅當會話不存在時才創建會話。 OP不刪除/無效會話,因此'request.getSession(true)'沒有原因重新創建會話。 – 2013-03-10 19:48:10