天天看点

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获取上次访问时间