Session和Cookie学习笔记—Cookie使用

来源:互联网 发布:三菱plc编程入门梯形图 编辑:程序博客网 时间:2024/06/06 19:34

一、Cookie概述

Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。

二、Cookie的容量

Cookie最多只有4KB,并且浏览器最多可以保存300个Cookie。当然,在浏览器大战的今天,一些浏览器为了打败对手,可能对Cookie规范“扩展”了一些,例如每个Cookie的大小为8KB,最多可保存500个Cookie等!

三、Cookie的写入和读取

Cookie的写入:

@Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        req.setCharacterEncoding("UTF-8");        String username = req.getParameter("username");        System.out.println(username);        Cookie cookie = new Cookie("username",username);        resp.addCookie(cookie);    }

Cookie的读取:

    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        Cookie[] cookies = req.getCookies();        for(Cookie item:cookies) {            String name = item.getName();            if("userpass".equals(name)){                a=item.getValue();            }        }resp.setContentType("text/html;charset=UTF-8");        resp.setCharacterEncoding("UTF-8");        resp.getWriter().print(a);    }

四、Cookie的生命周期

默认是浏览器一关闭,cookie就消失了,可以通过setMaxAge方法来设置cookie

  • setMaxAge(60*60):表示cookie对象可存活1小时。就算关闭浏览器,就算重启客户端电脑,cookie也会存活1小时。因为当maxAge大于0时,浏览器不仅会把cookie保存在浏览器内存中,还会把cookie保存到硬盘上。
  • cookie.setMaxAge(-1):cookie的maxAge属性的默认值就是-1(其实只要是负数都是一个意思),表示只在浏览器内存中存活。一旦关闭浏览器窗口,那么cookie就会消失。
  • cookie.setMaxAge(0):cookie被作废!表示cookie即不在内存中存活,也不在硬盘上存活,这样的cookie设置只有一个目的,那就是覆盖客户端原来的这个cookie,使其作废。
原创粉丝点击