日常(Cookie)

2022/4/26 23:13:55

本文主要是介绍日常(Cookie),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#反正听见这个饿了很正常的。

会话:

保存会话过程中产生的数据,在 Servlet 技术中,提供了两个用于保存会话数据的对象, 分别是 Cookie 和 HttpSession。

Cookie 通过在客户端记录信息确定用户身份,HttpSession 通过在 服务器端记录信息确定用户身份。

 

Cookie:response.setContentType("text/html;charset=utf-8");

<1>Cookie 就是一个键和一个值构成的键值对(一键一值),保存客户端小片段数据。

一般来说:

➢ Cookie 大小上限为 4KB;

➢ 一个服务器最多在客户端浏览器上保存 20 个 Cookie;

➢ 一个浏览器最多保存 300 个 Cookie;

但是由于浏览器行业竞争,有些cookie的大小上限被提高,保存数量也大幅提升。不同浏览器之间不共通cookie数据

 

<2>Cookie 是通过 HTTP 请求头和响应头在客户端和服务器端传递的。

请求头:Cookie: name1=value1;name2=value2;//以分号间隔断开

响应头:set-Cookie:name1=value1;//一个对象一个set-Cookie;

 

 

<3>Cookie 覆盖刷新

cookie是保持一键一值,只要键名一致,值是会不断被刷新覆盖的。

 

<4>Cookie 的生命周期

生命就是 Cookie 在客户端的有效时 间,可以通过“ setMaxAge(int) ”来设置 Cookie 的有效时间。

1.Cookie.setMaxAge(-1);意味着cookie被设置为默认值,这是cookie的生命只存在于浏览器上,浏览器一旦关闭则,该cookie就会消失

2.Cookie.setMaxAge(0);意味着cookie被销毁作废。

3.Cookie.setMaxAge(60*60*24);意味着cookie被储存在所使用的浏览器所在硬盘里,括号内顺序分别是,秒,分钟....以此类推,总之单位为秒

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {

        String lastAccessTime = null;
        Cookie[] cookies = request.getCookies();

        for (int i = 0; cookies != null && i < cookies.length; i++) {
            if ("lastAccess".equals(cookies[i].getName())) {
                // 如果 cookie 的名称为 lastAccess,则获取该 cookie 的值
                lastAccessTime = cookies[i].getValue();
                break;
            }
        }
        response.setContentType("text/html;charaset=utf-8");
        if (lastAccessTime == null) {
            System.out.println("hello");
            response.getWriter().print("hello");
        } else {
            System.out.println("the last" + lastAccessTime);
            response.getWriter().print("the last" + lastAccessTime);
        }

        String currentTime = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(new Date());
        Cookie cookie = new Cookie("lastAccess", currentTime); // 创建一个名为 lastAcces

        cookie.setMaxAge(60); // 设置 Cookie保持时间为1分钟
        response.addCookie(cookie);
    }
}

使用response发送Cookie,request获取Cookie

 

<5>Cookie的路径

1.设置 Cookie 的 path 来指定浏览器在访问什么样的路径时,包含哪一些 Cookie。避免cookie的发送冗余。

2.Cookie的path并不是设置客户端的保存路径,而是由服务器创建 Cookie 时设置,Servlet 的路径作为 Cookie 的默认 path。当浏览器访问服务器某个路径时,需要归还哪些 Cookie 给服务器,这由 Cookie 的 path 决定。浏览器访问服务器的路径,如果包含某个 Cookie 的路径,那么就会归还这个 Cookie。

3.@WebServlet("路径设置")



这篇关于日常(Cookie)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程