cookie不能獲取自己設定的,只能獲取系統的名字為JSESSIONID的cookie的解決辦法
今天在做一個登陸頁面,實現在一定時間內反覆登陸不用輸入密碼。為了和其他網站的cookie做區別,我開始使用的cookie的name是當前網站的路徑basePath
String path = request.getContextPath();//形如 /J2ee
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + path + "/";
new cookie(basePth,user)
這樣程式不報錯,而且瀏覽器中葉儲存了我的設定的cookie,但是就是去不出來,後來發現cookie中的name不能包含
另外,還有些注意的是cookie必須設定時間和路徑,不然其他頁面找不到這個cookie在哪裡(本頁面中還是可以找到的)
cookie.setMaxAge(10*60);
cookie.setPath(request.getContextPath());//表示只有本專案地址下的所有位置可取如:cookie.setPath(/J2ee)表示只有J2ee工程下的所有位置可取這個cookie
清楚cookie辦法:
清除cookie也就是覆蓋之前的cookie,新的cookie和以前的cookie的name 一樣就可以覆蓋之前的cookie
//cookie中的使用者資訊清空
Cookie cookie = new Cookie(path, null);//path就是cookie的名字,要和被覆蓋的cookie的名字一樣
cookie.setMaxAge(0);//0指0秒,設定為null 後立即失效
cookie.setPath(request.getContextPath());//千萬不可少,不然這個站點找不到這個cookie
//切記 設好cookie 後要加入response中
response.addCookie(cookie);
清除session,就是把之前那個session的值設為null
request.getSession().setAttribute("user", null);