I want to add user session support to my application. Since reloading the page will restart the application and even opening another browser tab will cause the original one ‘out of sync’ problem.
Do I need to create an independent window for each login, or is there any plugin I can use, or if I make it a Spring + Vaadin application, will it solve this problem?
Reloading the page should not restart the application, unless your url ends with
?restartApplication=true.The Application object is stored in the HTTP Session, therefore everything you want to store per user can be associated with the application.
Typically, each browser process can only support one HTTP Session, hence you will only be able to support one user per browser (unless you make significant efforts, and store per-user state on each application level Window. I recommend you don’t do this unless you know what you are doing : one user-per-http-session is the norm in web applications)
Spring+Vaadin are a good combination – I am using this pairing to great effect in our projects – but are not particularly useful in this context.
Vaadin does not support multiple-windows/tabs in it’s default configuration (hence your out-of-sync errors). However, it is trivial to write the code to do so : here’s a simple explanation, and some code