HttpSessionを使う

struts2でHttpSessionを使う場合、ActionでSessionAwareをimplementsします。

public class HogehogeAction implements SessionAware {
    private Map session;
    
    @Override
    public String execute() throws Exception {

        // セッションを使った処理

        return SUCCESS;
    }
    
    public void setSession(Map session) {
        this.session = session;
    }
}

そうするとフレームワークがsetSessionメソッドを使用して
セッション情報をセットしてくれます。

  • セッションを破棄する方法

ドキュメントが見つからなかったのでソースコードを読んで探しました。

((SessionMap)session).invalidate()

これでOKです。


sessionの実体はorg.apache.struts2.dispatcher.SessionMapです。
SessionMapは内部でHttpSessionを持っていてSessionMap#invalidate()内で
HttpSession#invalidate()をコールしていました。