Cookie的详解使用(创建,获取,销毁)

news/2024/5/18 12:01:40 标签: hive, hadoop, 数据仓库, java, cookie

文章目录

  • Cookie的详解使用(创建,获取,销毁)
    • 1、Cookie是什么
    • 2、cookie的常用方法
    • 3、cookie的构造和获取代码演示
      • SetCookieServlet.java
      • GetCookieServlet.java
      • web.xml
      • 运行结果如下
    • 4、Cookie的销毁
      • DestoryCookieServlet
      • web.xml
      • 运行结果如下,刚才设置的cookie已经没了

Cookie的详解使用(创建,获取,销毁)

1、Cookie是什么

  1. cookie是在浏览器中保存的

  2. 如果想要使用cookie要保证我们的浏览器是开启cookie,所以说有一定的弊端,如果浏览器没有开启cookie,就不能再使用cookie

  3. cookie的大小是有限制的,通常是4096byte

  4. cookie的保存是以键值对的形式存在的

cookie_11">2、cookie的常用方法

java">//1.cookie的构造方法,目的是实例化出来cookie对象
Cookie(String name,String value)
//2.设置cookie的方法
setValue(String value) //修改cookie的值
getValue(String value) //获得cookie的值    
getName(String value) //获得cookie的键    
setMaxAge(int time) //设置cookie的有效时间
//3.要将cookie发送到浏览器
response.addCookie(Cookie cookie);
//4.获得所有cookie
request.getCookies();

cookie_26">3、cookie的构造和获取代码演示

java_27">SetCookieServlet.java

java">/*
 * Copyright (c) 2020, 2023, fpl1116.cn All rights reserved.
 *
 */
package cn.fpl.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>Project: JavaWebDemo - SetCookieServlet</p>
 * <p>Powered by fpl1116 On 2023-12-27 09:50:33</p>
 * <p>描述:<p>
 *
 * @author fpl1116 [2391940642@qq.com]
 * @version 1.0
 * @since 1.8
 */
public class SetCookieServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //创建cookie对象
        Cookie cookie = new Cookie("fpl","fpl1116");

        //设置过期时间
        cookie.setMaxAge(60*60*24);

        //发送浏览器响应
        resp.addCookie(cookie);

    }
}

java_73">GetCookieServlet.java

java">/*
 * Copyright (c) 2020, 2023, fpl1116.cn All rights reserved.
 *
 */
package cn.fpl.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

/**
 * <p>Project: JavaWebDemo - SetCookieServlet</p>
 * <p>Powered by fpl1116 On 2023-12-27 09:50:33</p>
 * <p>描述:<p>
 *
 * @author fpl1116 [2391940642@qq.com]
 * @version 1.0
 * @since 1.8
 */
public class GetCookieServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie[] cookies = req.getCookies();
        for(Cookie cookie : cookies){
            System.out.println("=============");
            System.out.println(cookie.getName());
            System.out.println(cookie.getValue());
        }


    }
}

web.xml

java"><servlet>
        <servlet-name>setcookie</servlet-name>
        <servlet-class>cn.fpl.servlet.SetCookieServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>setcookie</servlet-name>
        <url-pattern>/setcookie</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>getcookie</servlet-name>
        <servlet-class>cn.fpl.servlet.GetCookieServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>getcookie</servlet-name>
        <url-pattern>/getcookie</url-pattern>
    </servlet-mapping>

运行结果如下

setcookie
在这里插入图片描述

getcookie

在这里插入图片描述

在这里插入图片描述

4、Cookie的销毁

DestoryCookieServlet

java">package cn.fpl.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class DestoryCookieServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获得所有cookie
        Cookie[] cookieArr = req.getCookies();
        for (Cookie cookie : cookieArr) {
            if("fpl".equals(cookie.getName())){
                //修改fpl的失效时间
                cookie.setMaxAge(0);
                resp.addCookie(cookie);
            }
        }
    }
}

web.xml

java"><servlet>
        <servlet-name>destoryCookie</servlet-name>
        <servlet-class>cn.fpl.servlet.DestoryCookieServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>destoryCookie</servlet-name>
        <url-pattern>/destoryCookie</url-pattern>
    </servlet-mapping>

cookie_195">运行结果如下,刚才设置的cookie已经没了

在这里插入图片描述


http://www.niftyadmin.cn/n/5291018.html

相关文章

[Redis实战]优惠券秒杀

三、优惠券秒杀 3.1 全局唯一ID 每个店铺都可以发布优惠券&#xff1a; 当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这种表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题&#xff1a; id的规律性太明显受单表数据量的限制 场景分析一&…

【数据库】PostgreSQL中的DISTINCT ON和DISTINCT的区别

深入理解PostgreSQL中的DISTINCT ON和DISTINCT 在数据库查询中&#xff0c;我们经常会遇到需要去除重复数据的情况。在PostgreSQL中&#xff0c;我们可以使用DISTINCT和DISTINCT ON来实现这个目标。那么&#xff0c;它们之间有什么区别呢&#xff1f;本文将详细介绍这两种方法…

C语言—每日选择题—Day64

前言 两天没更新了&#xff0c;作者在复习期末考试&#xff0c;更新一波&#xff0c;祝大家都能顺利通过期末考试&#xff01;&#xff01;&#xff01; 指针相关博客 打响指针的第一枪&#xff1a;指针家族-CSDN博客 深入理解&#xff1a;指针变量的解引用 与 加法运算-CSDN博…

哪些是伦敦金交易入场的好位置?

做伦敦金交易想要盈利&#xff0c;除了要对时机进行把控以外&#xff0c;位置这个因素也是很重要的。关于位置我们比较多强调的是支撑阻力位这种&#xff0c;下面我们就来讨论一下&#xff0c;有哪些位置是适合投资者开仓入场的。 菲波纳齐回调。我们所说的斐波那契回调位是特指…

【ECON30001】Advanced Microeconomics

Instructions: • There are 50 possible marks. Your percent score counts for 70% of the overall grade. • Submit your work using Turnitin on Blackboard. • Late submissions receive zero marks. Extensions cannot be granted by the lecturer. If there are i…

deepin系统安装达梦数据库

deepin系统安装达梦数据库 1.下载安装包和执行可执行文件2.解压缩可执行文件3.运行安装程序 2.初始化3.达梦管理工具 deepin系统安装达梦数据库 1.下载安装包和执行可执行文件 进入deepin系统桌面, 打开终端, 输入命令uname -a 检查cpu架构,前往达梦官网下载合适的安装包, 目前…

通过Fiddler肆意修改接口返回数据进行测试

方法介绍与比对 在测试的过程中&#xff0c;有的需求是这样的&#xff0c;它需要你修改接口返回的数据&#xff0c;从而检查在客户端手机app内是否显示正确&#xff0c;这也算是一种接口容错测试&#xff0c;接口容错测试属于app性能&#xff08;专项&#xff09;测试的其中一种…

docker学习笔记01-安装docker

1.Docker的概述 用Go语言实现的开源应用项目&#xff08;container&#xff09;&#xff1b;克服操作系统的笨重&#xff1b;快速部署&#xff1b;只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统&#xff1b;Docker通过隔离机制&#xff0c;每个容器间是互相隔离…