マネージド Bean でセッションを作成および破棄するにはどうすればよいですか
自分で作成する必要はありません。サーブレットコンテナは、オンデマンドで自動的にそれを行います。つまり、ユーザー (または JSF) がセッション スコープでオブジェクトを設定する必要があるときはいつでも、サーブレット コンテナが自動的にセッションを作成します。JSF Web アプリケーションでは、これは次の場合に発生します。
@SessionScopedまたは@ViewScopedマネージド Bean を初めて参照します。
ExternalContext#getSession()で初めてセッションを取得しtrueます。
- オブジェクトを
ExternalContext#getSessionMap()初めてセッション マップに保存します。
<h:form>状態保存方法が「サーバー」に設定されている状態で、初めてを含むページを返します。
でセッションを破棄できますExternalContext#invalidateSession()。例えば
public String logout() {
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return "login?faces-redirect=true";
}
セッションオブジェクトは現在のリクエストのレスポンスで引き続き利用できますが、次のリクエストでは利用できないため、後でリダイレクトを送信することを忘れないでください。
セッション変数に保存されている値にアクセスするにはどうすればよいですか?
@SessionScopedマネージドBeanのプロパティにするだけです。または、手動で を操作することもできExternalContext#getSessionMap()ます。はい。
jsfでセッションを破棄するにはどうすればよいですか
これは最初の質問ですでに回答されています。
以下も参照してください。