天天看點

javaweb 使用Cookie擷取上次通路時間

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>");
        }

    }
           

效果:

javaweb 使用Cookie擷取上次通路時間

再次重新整理之後

javaweb 使用Cookie擷取上次通路時間

怎麼清除cookie??

按F12 進入開發者模式 

找到application > Cookies  ,右鍵可以清除cookie了

javaweb 使用Cookie擷取上次通路時間