今晚我們來聊聊java技術,java的應用是非常廣泛的,比如桌面程序,安卓apk程序,今天我們說說java web網站應用的一個非常有用且重要的技術:Cookie。Cookie的應用面很多,比如網站商品的瀏覽歷史,記住用戶名等等應用場景,我們今天講解一個實際的案例:記錄用戶上次訪問頁面的時間。
下面我分享代碼,並且會給代碼加上我的講解註釋,幫助各位童鞋理解。
// 獲取本地所有的cookie,得到一個cookie的數組
Cookie cookies[] = request.getCookies();
// 設置一個boolean變量,來標記是否找到我們需要的cookie
boolean b=false;
// for對象數組循環,循環的cookies數組,而每一次創建一個ck的cookie對象
for(Cookie ck:cookies){
if("lastVisit".equals(ck.getName())){
// 說明存在上次訪問該頁面的cookie
b=true;
// 讀取cookie,利用getValue()方法
String time = ck.getValue();
out.println("上一次登錄時間是:"+time);
// 利用SimpleDateFormat對象的format方法,格式化當前時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = sdf.format(new java.util.Date());
// 更新Cookie中lastVisit的值,否則無法記錄上次最新的訪問時間
Cookie cookie = new Cookie("lastVisit",nowTime);
// 設置Cookie的生命週期,一般是一週
cookie.setMaxAge(7*24*3600);
// 利用http的response對象,將Cookie存儲到本地
response.addCookie(cookie);
// 找到cookie就退出for循環
break;
}
// 說明是第一次訪問該頁面,Cookie中還沒有lastVisit的值
if(!b){
out.println("您第一次訪問該頁面!");
// 格式化當前時間,並且把時間保存到cookie中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = sdf.format(new java.util.Date());
Cookie cookie=new Cookie("lastVisit",nowTime);
cookie.setMaxAge(7*24*3600);
response.addCookie(cookie);
}
好了,今晚的Cookie技術分享到此結束,大家有什麼疑問,可以留言和我討論,很開心與大家一起進步!
大家可以關注我的微信公衆號:iwork,我會每天推送一篇原創文章,讓大家都能有所收穫!