一.什么是Cookie 保存在客户端(浏览器)的一小段文本信息 (只能存一些小数据。几十KB的字符串)
二.使用场景 当前浏览器的自动登录。记住账号。浏览记录等等。
三.如何在浏览器中查看Cookie F12 找到application 找到Cookies
四.Cookie的常见属性: a.name表示cookie的名字必须是独一无二的 b.value表示cookie的值 c.expires表示cookie什么时间过期失效
五.备注 a.不同网站的Cookie是无法共享的 b.JSESSIONID是自动生成的。有效期只有一次会话。一般就记录用户的当前信息。 c.由于Cookies是保存在客户端的,所有可以被用户任意浏览或删除或操作 d.所以Cookie需要进行保密 且 非空校验
六.如何在Java的Servlet中创建Cookie,让其存在于浏览器中 1.创建前台页面 2.编写与之对应的Servlet
3. a.创建Cookie的实例化对象 并赋予name和value值 Cookie c1 = new Cookie("username" , "张三123"); Cookie c2 = new Cookie("password" , "123456"); b.设置cookie的生命周期,单位是秒 c1.setMaxAge(60*60*24*365); c2.setMaxAge(60*60*24*365); c.将其添加到浏览器中 resp.addCookie(c1); resp.addCookie(c2); d.跳转页面 这个随意 req.getRequestDispatcher("index.jsp").forward(req,resp);
七.如何在Java的Servlet中查询所有的Cookie或指定的Cookie 1.通过req获取所有的Cookies Cookie[] cookies = req.getCookies(); 2.非空校验 if (cookies!=null){ //开始遍历输出 for(int i = 0 ; i < cookies.length ; i++){ System.out.println(cookies[i].getName()); System.out.println(cookies[i].getValue()); //如果是只想查询指定Cookie加个if判断即可 if (cookies[i].getName().equals("username")){ System.out.println(cookies[i].getValue()); }
八.如何在Java的Servlet中删除Cookie 1.通过req获取所有的Cookies Cookie[] cookies = req.getCookies(); 2.非空校验 if (cookies!=null){ //开始遍历输出 for(int i = 0 ; i < cookies.length ; i++){ //遍历,然后找到你想要删除的cookie的名字 ,将其生命周期设置为0即可立刻删除 if (cookies[i].getName().equals("username")){ cookies[i].setMaxAge(0); //最后别忘了 再次添加到浏览器中 resp.addCookie(cookies[i]); }