Cookieを削除する

1.フィルタクラスを作成する。

明示的にクッキーの内容を削除する手段は無い為、既存のクッキーを有効期間がゼロ秒のクッキーに変更する事で、ブラウザ側で破棄の処理を行うように促す。

package hoge;

import java.io.*;
import javax.servlet.*;

public class CookieFilter implements Filter {

  public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

	Cookie cookies[] = ((HttpServletRequest)req).getCookies();
	if(cookies != null) {
		for(int i = 0; i < cookies.length; i++) {

			// クッキーの有効期間を0秒に設定する
			cookies[i].setMaxAge(0);
                        ((HttpServletResponse)res).addCookie(cookies[i]);
		}
	}
  }

  public void init(FilterConfig config) throws ServletException {
  }

  public void destroy() {
  }
}

2.web.xmlにフィルタの設定を記述する。

<web-app>
  <filter>
    <filter-name>cookieFilter</filter-name>
    <filter-class>CookieFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>cookieFilter</filter-name>
    <url-pattern>/hoge/CookieFilter</url-pattern>
  </filter-mapping>
</web-app>