javaweb的基礎練習
先介紹Cookie對象主要用到的方法!
getCookies() 用request來擷取Cookie,傳回的是一個Cookie數組,也就是所有的cookie的值
Cookie[] cookies = req.getCookies();
getName() 擷取到cookie數組,就能擷取數組裡面的cookie名字
String name = cookie.getName();
getValue() 擷取數組裡面的cookie的值
String value = cookie.getValue();
代碼:
@WebServlet("/cookieTest")
public class CookieTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//設定響應的消息體的資料格式以及編碼
resp.setContentType("text/html;charset=utf-8");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//1.擷取所有Cookie
Cookie[] cookies = req.getCookies();
boolean flag = false;
//2.周遊cookie數組
if(cookies != null && cookies.length > 0){
for (Cookie cookie : cookies) {
//3.擷取cookie的名稱
String name = cookie.getName();
//4.判斷名稱是否是:lastTime
if("lastTime".equals(name)){
//有該Cookie,不是第一次通路
flag = true;
//響應資料
//擷取Cookie的value,時間
String value = cookie.getValue();
//把字元串轉換long類型,再轉日期類型,然後格式化時間
long l = Long.parseLong(value);
String time = sdf.format(new Date(l));
resp.getWriter().write("<h1>歡迎回來,您上次通路時間為:"+time+"</h1>");
//設定Cookie的value
//擷取目前時間的字元串,重新設定Cookie的值,重新發送cookie
long millis = System.currentTimeMillis();
cookie.setValue(millis+"");
//設定cookie的存活時間
cookie.setMaxAge(60 * 60 * 24 * 30);//一個月
//相應到Cookie
resp.addCookie(cookie);
break;
}
}
}
if(flag == false){
//沒有,第一次通路
//設定Cookie的value
//擷取目前時間的字元串,重新設定Cookie的值,重新發送cookie
long timeMillis = System.currentTimeMillis();
Cookie c = new Cookie("lastTime",timeMillis+"");
//設定cookie的存活時間
c.setMaxAge(60 * 60 * 24 * 30);//一個月
resp.addCookie(c);
resp.getWriter().write("<h1>hello,歡迎首次通路</h1>");
}
}
效果:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL4lERNNzaE9EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1kTNwQTMwADM5ADNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
再次重新整理之後
怎麼清除cookie??
按F12 進入開發者模式
找到application > Cookies ,右鍵可以清除cookie了