Cookie是value-key键值对,一个Cookie中只能有一个键值对。
从HttpServletRequest中获取Cookie,向HttpServletResponse中添加Cookie:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); //从HttpServletRequest中获取Cookie Cookie[] cookies = req.getCookies(); Cookie findCookie = null; if (cookies != null) { for (Cookie cs : cookies) { if ("firstCookie".equals(cs.getName())) { findCookie = cs; } } } if (findCookie == null) { //第一次访问时,设置cookie resp.getWriter().println("welcome !!"); LocalDateTime localDateTime = LocalDateTime.now(); Cookie cookie = new Cookie("firstCookie", localDateTime.toString()); //设置Cookie存活时间 cookie.setMaxAge(7 * 24 * 60 * 60); resp.addCookie(cookie); }else { //读取Cookie resp.getWriter().println("pre visit time:"); resp.getWriter().println(findCookie.getValue()); findCookie.setValue(LocalDateTime.now().toString()); //向HttpServletResponse中添加Cookie resp.addCookie(findCookie); } }
设置Session,Session的本质也是一种Cookie:
// 获取session对象 HttpSession session = req.getSession(); // 获取session的Id,id相对于用户+浏览器独一无二 session.getId(); // 通过session传递参数key-value键值对 session.setAttribute(name, value); session.getAttribute(name); // 设置session存活时间,以秒计 session.setMaxInactiveInterval(interval); // 清除全部键值对 session.invalidate();
html5中的数据存储:
localStorage - 没有时间限制的数据存储,数据存储在浏览器中,关闭当前页面或浏览器数据也不会丢失。
<!DOCTYPE HTML> <html> <body> <script type="text/javascript"> if (localStorage.pagecount) { localStorage.pagecount=Number(localStorage.pagecount) +1; } else { localStorage.pagecount=1; } document.write("Visits: " + localStorage.pagecount + " time(s)."); </script> <p>刷新页面会看到计数器在增长。</p> <p>请关闭浏览器窗口,然后再试一次,计数器会继续计数。</p> </body> </html>
sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除:
<!DOCTYPE HTML> <html> <body> <script type="text/javascript"> if (sessionStorage.pagecount) { sessionStorage.pagecount=Number(sessionStorage.pagecount) +1; } else { sessionStorage.pagecount=1; } document.write("Visits " + sessionStorage.pagecount + " time(s) this session."); </script> <p>刷新页面会看到计数器在增长。</p> <p>请关闭浏览器窗口,然后再试一次,计数器已经重置了。</p> </body> </html>