サーバサイド(Java)でCookieを削除する処理を実装していますが、
削除できていないためソースに不備がありましたらご教示願います。
ログイン機能で、「Login」「Logout」「CheckCookie」のボタンがあります。
JavaScriptでボタン押下契機に関数からサーブレットでCookieを保存削除する流れです。
Cookie削除後にブラウザのデバッグツールでCookieを確認すると、
消えておらず、原因がわかりません。
参考:
http://javatechnology.net/java/cookie-create-delete/
/** * ログイン機能に関する関数 */ $(function() { /** * [概要] ログインボタン押下契機にCookie作成。 */ $('#login').click(function(){ $.ajax({ url:'MngLoginServlet', method:'get', error: function() { alert('error'); }, success: function() { alert('success'); } }); }); /** * [概要] ログアウトボタン押下契機にCookie削除。 */ $('#logout').click(function(){ $.ajax({ url:'MngLoginServlet', method:'post', error: function() { alert('error'); }, success: function() { alert('success'); } }); }); /** * [概要] Cookieを表示確認 * [詳細] 現在保存されているCookie表示。 */ $('#cookieCheck').click(function(){ alert(document.cookie); }); });
package mng; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * <p>[概要]ログイン画面でボタン押下契機にCookieを作成、削除する</p> */ @WebServlet("/MngLoginServlet") public class MngLoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public MngLoginServlet() { super(); } /** * <p>[概要]ログインボタン押下契機にCookie作成</p> */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie cookie = new Cookie("TestCookie", "1000"); cookie.setMaxAge(60 * 30); cookie.setPath("/"); cookie.setSecure(false); response.addCookie(cookie); } /** * <p>[概要]ログアウトボタン押下契機にCookie削除</p> */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie cookies[] = request.getCookies(); for ( Cookie cookie : cookies) { if ("TestCookie".equals(cookie)) { cookie.setMaxAge(0); cookie.setValue(""); cookie.setPath("/"); response.addCookie(cookie); } } } }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/16 15:55