Cookie

您所在的位置:网站首页 电脑的cookies怎么设置 Cookie

Cookie

2024-07-09 15:58| 来源: 网络整理| 查看: 265

文章目录 1、cookie的简介2、操作的一些技巧(尚硅谷所学)3、利用程序创建cookie4、获取cookie5、修改cookie6、修改cookie存活周期

1、cookie的简介

什么是cookie cookie是用来存储在客户端浏览器上面的文本文件,它可以跟踪各种信息。比如在网页登录账号是,用户名、密码等信息就是cookie。

cookie有什么作用 cookie可以保存客户端的一些信息,比如你在某个页面登录的相关信息可以保存在cookie里面,当你下次再次请求访问这个页面时,浏览器直接查找有没有保存这个用户信息的cookie,如果有直接用。减少了再次访问服务器的繁琐。在你登录新账号时,浏览器会弹出是否记住该账号,如果记住,直接修改对应cookie的存货时间就可以了。

如何查看浏览器的cookie-这里以我使用的edge为例 方法1: 1.打开浏览器设置 2.点击cookie和网站权限 3.管理和删除cookie数据 4.查看所有cookie 在这里插入图片描述

方法2: 1.点击f12 2.点击应用程序(application) 3.cookie就可以l 在这里插入图片描述

2、操作的一些技巧(尚硅谷所学)

可以在html里面利用超链接,再通过iframe标签观看实现情况,十分方便。这也算是对前面所学的一个实践了。

Title 创建cookie 获取cookie 查找值为键值key1的cookie 修改cookie 修改cookie存活周期 正数情况 零 修负数情况

在这里插入图片描述

3、利用程序创建cookie

创建cookie很简单只需要两步: 1.在servlet程序里面创建一个cookie对象,注意是键值对形式,键和值都是字符串。 2.将cookie添加到浏览器(客户端)就OK了

@WebServlet("/cookie001") public class CookieDemo001 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.首先把编码方式换成utf-8,不然显示中文时会乱码 resp.setContentType("text/html;charset=utf-8"); //2.创建cookie Cookie cookie = new Cookie("key1","value1"); //3.添加cookie resp.addCookie(cookie); resp.getWriter().write("Cookie创建成功!!!"); } }

通过查看发现cookie已经创建成功!!! 在这里插入图片描述

4、获取cookie

获取cookie也十分方便,浏览器将所有cookie键值对放在一个cookie数组里面,我们只需要遍历数组就可以查看了 1.创建cookie数组,从request域中获取cookie 2.遍历cookie数组就可以查看了

@WebServlet("/cookie002") public class getCookie extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Cookie [] cookies = req.getCookies(); for (Cookie cookie : cookies) { System.out.println("cookie名称:"+cookie.getName()); System.out.println("cookie值:"+cookie.getValue()); resp.getWriter().write("cookie名称:"+cookie.getName()+","+"cookie值:"+cookie.getValue()); resp.getWriter().write(""); } } }

在这里插入图片描述 如果需要查找特定cookie,只需要对比键名就可以了。比如我还要值为key1的cookie

@WebServlet("/cookie003") public class CookieDemo003 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Cookie [] cookies = req.getCookies(); for (Cookie cookie : cookies) { if("key1".equals(cookie.getName())){ resp.getWriter().write("找到了!!!"+"cookie名称:"+cookie.getName()+","+"cookie值:"+cookie.getValue()); } } } }

在这里插入图片描述

5、修改cookie

修改cookie也是特别简单,只需要找到想要修改的cookie,然后通过setValue()方法修改 这里把前面创的名为cookie003的值换成003,然后再保存新的cookie

@WebServlet("/cookie004") public class CookieDemo004 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { if("cookie003".equals(cookie.getName())){ resp.getWriter().write("修改之前"+"cookie名称:"+cookie.getName()+","+"cookie值:"+cookie.getValue()+""); cookie.setValue("003"); resp.addCookie(cookie); } } Cookie[] cookies1 = req.getCookies(); for (Cookie cookie : cookies1) { if("cookie003".equals(cookie.getName())){ resp.getWriter().write("修改之后"+"cookie名称:"+cookie.getName()+","+"cookie值:"+cookie.getValue()); } } } }

在这里插入图片描述 在这里插入图片描述 这里提醒一下一定要重新保存一下新的cookie值,不然会出现iframe框里面提示已经修改了,但是浏览器后台是没有修改的。这是因为iframe框里面是同一个servlet程序的,修改之后还没有告诉浏览器,导致浏览器里面的cookie没有修改。

在这里插入图片描述

在这里插入图片描述

6、修改cookie存活周期

cookie也是有存货周期的,它的存活周期默认为一次会话,也就是打开浏览器到关闭浏览器之间都还在。但是我们可以通过修改存货时间修改它的存货时间。通过setMaxAge()方法实现,它的单位为秒。 传入参数几种情况: 1.正数:就是存活多少秒。

@WebServlet("/cookie005") public class CookieDemo005 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { if("cookie003".equals(cookie.getName())){ resp.getWriter().write("修改存活周期为1天"); cookie.setMaxAge(60*60*24); resp.addCookie(cookie); resp.getWriter().write("存活周期已经修改了"); } } } }

在这里插入图片描述 这里的时间不是北京时间,所以会有一定差异

2.零:马上删除该cookie

@WebServlet("/cookie006") public class CookieDemo006 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { if("cookie003".equals(cookie.getName())){ resp.getWriter().write("修改存活周期为0"); cookie.setMaxAge(0); resp.addCookie(cookie); resp.getWriter().write("存货周期已经修改了"); } } } }

在这里插入图片描述 cookoo3就没有了 3.负数:默认情况,一次会话。

@WebServlet("/cookie007") public class CookieDemo007 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { if("cookie004".equals(cookie.getName())){ resp.getWriter().write("修改存活周期为-1"); cookie.setMaxAge(-1); resp.addCookie(cookie); resp.getWriter().write("存货周期已经修改了"); } } } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3