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()をコールしていました。