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>