私はWebアプリケーションを作成しています。Vaadin UI - すべてのクライアントに静的フィールドを使用できません
私は、を拡張するMyUI
を持っています。
public class MyUI extends UI {
public static Authentication AUTH;
@Override
protected void init(VaadinRequest vaadinRequest) {
AUTH = new Authentication();
updateContent();
}
//other methods
}
Authentication()
私はユーザーをログに記録しました。ログアウトすると、そのユーザーはnull
に設定されます。
2つのデバイスからサーバーにアクセスすると、サーバーに2つの接続が必要なときに、誰かがログアウトすると、もう1つもログアウトされることに気付きました。
認証クラスでは、この方法があります:
public void doLogout() {
System.out.println("User: " + this.user.getMail() + " has logged out.");
this.user = null;
}
ユーザーがすでにnull
に設定されているので、私は他のアカウントからログアウトを実行しようとするとき、私は、user.getMail()
にエラーが発生します。
com.vaadin.ui.UI
は固有ですか? Vaadinでどのように異なる接続を扱うことができますか?
通常、「通常の」変数を使用するのはOKです.Webブラウザごとに1つのUIなので、複数のウィンドウやブラウザで同じ環境/セッションを使用する場合を除き、ユーザーは正しく区別されます –
True、ここは良い記事ですその違いについて:[Vaadinの変数スコープ:VaadinSessionとUI](https://blog.oio.de/2013/02/22/vaadins-variable-scopes-vaadinsession-and-ui/)。 autheticationセッションの方が適切かもしれないと思います。 – pirho