2012-08-09 30 views
0

我在jsp頁面中使用document.cookie創建了cookie。將cookie值設置爲null由document.cookie創建

在我的servlet中(記住它不是一個可以使用java腳本的jsp頁面,它是一個servlet),我正在檢索cookie值,並且在使用之後,我想刪除它們。我不想通過使用到期時間來刪除Cookie。我想清除它的價值。所以,我在做cookie.setValue("");

但是,當我檢查我的瀏覽器中的cookie時,它仍然保存着這個值。它沒有清除。

  1. 如何清除其值?
  2. 另外,有沒有辦法清除cookie名稱?我知道沒有cookie.setName()函數。那麼,還有其他辦法嗎?

清除後,基本上我不希望用戶在瀏覽器中看到cookie。

問候,

+0

有沒有一個具體的理由,爲什麼你不能使用cookie.setMaxAge(0) ? – 2012-08-09 13:05:55

+0

在我的servlet中,我有一個鏈接,點擊它可以顯示一個頁面。如果沒有'document.cookie'設置cookie值,現在這個頁面會顯示。所以,我必須清除cookie。我猜'cookie.setMaxAge(0)'在這種情況下不起作用。另外,出於安全原因,只要此servlet被呈現,我不希望任何人從瀏覽器中看到cookie。請讓我知道,我如何清除Cookie的價值。 – 2012-08-10 04:02:15

+0

一個JSP頁面本質上是一個servlet,所以無論你在JSP頁面中能做什麼,你也可以在一個servlet中做。如果您可以將JavaScript代碼放入JSP頁面中,則也可以在servlet中執行此操作。你說你的JSP頁面中有一個鏈接到一個servlet,那麼這個servlet的任務是什麼? – 2012-08-10 13:19:13

回答

0

您可以通過兩種方式刪除cookie時,無論是在你的servlet(作爲服務器端代碼),或者如果你的servlet生成一個HTML文件,你可以添加一個頁面onload事件的JavaScript代碼。

//服務器端代碼

@Override 
protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { 

    // Your task here 

    Cookie cookie = new Cookie("cookieName", ""); 
    cookie.setMaxAge(0); // To delete the cookie named "cookieName", set MaxAge to 0. 
    response.addCookie(cookie); // You need to add this cookie to the response to tell the client (browser) that the cookie named "cookieName" must be deleted on the client (browser) 

    // Your task here 

} 

對於客戶端cookie刪除,你可以檢查這個http://www.webdevelopmentcentral.net/2007/12/client-side-cookie-handling.html