@SessionScopedを破棄する簡単な方法は?
@SessionScopedで管理されるオブジェクトを破棄する簡単な方法は、そのオブジェクトが使用されている場所でsession.invalidate()メソッドを呼び出すことです。こうした処理により、現在のセッションが無効になり、そのセッションに関連付けられているすべてのオブジェクト(@SessionScopedアノテーションの対象となっているオブジェクトを含む)は削除されます。Java Servletでは、HttpServletRequestオブジェクトのgetSession()メソッドを介して現在のセッションを取得し、そのinvalidate()メソッドを呼び出してセッションを破棄することができます。サンプルコードを以下に示します。
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
HttpSession session = request.getSession();
session.invalidate();
セッションを破棄するとセッションに関連するすべてのデータが削除され、セッションに保存されたオブジェクトなども対象に含まれるので、セッション.invalidate() メソッドの使用際には重要なデータが失われないよう注意が必要です。