• 浏览器数据存储:Cookie和Session,localStorage 和 sessionStorage


    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>
  • 相关阅读:
    qmake杂
    Qt界面风格设置
    qss使用详解
    QT数据库操作
    Qt语言家的简单使用
    c++11之右值引用和std::move
    c++11之类型萃取type_traits
    c++11之std::bind和function
    c++11之lambda
    vue中input输入框无法输入
  • 原文地址:https://www.cnblogs.com/mada0/p/4789178.html
Copyright © 2020-2023  润新知