2012-05-05 128 views
1

我是一個初學者Vaadin ...保留Vaadin會話數據

是否有可能,如果應用程序再次初始化爲保存會話數據?

我在問,因爲我試圖設置一些HTTP頁面刷新後消失的會話。

WebApplicationContext ctx = (WebApplicationContext) this.getContext(); 
HttpSession session = ctx.getHttpSession(); 
Object attribute = session.getAttribute("user"); // <- always gets flushed 

我想用這種方法進行用戶驗證。 如何做到最好?

+0

在'web.xml'文件,有什麼'會話timeout'標籤的價值? – Zakaria

+0

你是什麼意思再次初始化?調用Application.close()? –

回答

3

當應用程序再次初始化時,屬性被刷新是完全正常的,因爲當應用程序再次初始化時,會創建一個新的上下文。 所以我建議你使用http-cookies而不是將會話屬性添加到會話本身,因爲這是(據我所知)在網站上完成「記住我」功能的默認方式。此外,您還可以設置Cookie的過期日期。

作爲一個安全提示,我會建議你不要使用數據進行跨會話的用戶驗證,這可以很容易地找出和濫用。

而且我發現一篇文章,一個插件,其處理餅乾:

Book of Vaadin - explaining how to set Cookies

Vaadin Addon which deals with Cookies