首页 > 其他分享 >Cookie的特点和作用、Cookie案例

Cookie的特点和作用、Cookie案例

时间:2022-08-15 14:24:39浏览次数:56  
标签:cookie 访问 特点 案例 Cookie str date import

Cookie的特点和作用

  1. cookie存储数据在客户端浏览器
  2. 浏览器对于单个cookie的大小有限制(4kb)以及 对同一个域名下的总cookie数量也有限制(20个)

作用:

  1. cookie一般用于存储少量的不太敏感的数据
  2. 在不登录的情况下 完成服务器对客户端的身份识别

Cookie案例-记住上一次访问时间

案例需求:

  1. 访问一个Servlet 如果是上一次访问 则提示 您好 欢迎您首次访问
  2. 如果不是第一次访问 则提示 欢迎回来 你上一次访问时间为:显示时间的字符串

分析

图解

 

 1.可以采用Cookie来完成

2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie

  • 有:不是第一次访问
    • 响应数据:欢迎回来 您上一次访问时间为:2022年8月15日14:00:30
    • 写回Cookie:lastTime=2022年8月15日14:00:30
  • 没有:是第一次访问
    • 响应数据:你好 欢迎您首次访问
    • 写回Cookie:lastTime=2022年8月15日14:00:30

java代码

package com.bai.Cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/CookieTest")
public class CookieTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置响应的消息体的数据格式以及编码
        resp.setContentType("text/html;charset=utf-8");
        //1.获取所有Cookie
        Cookie[] cookies = req.getCookies();
        boolean flag=false;//没有cookie为lastTime
        //2.遍历cookie数组
        if (cookies!=null && cookies.length>0){
            for (Cookie cookie : cookies) {
                //3.获取cookie的名称
                String name = cookie.getName();
                //4.判断名称是否是:lastTime
                if ("lastTime".equals(name)){
                    //有该Cookie 不是第一次访问
                    flag=true;//有cookie为lastTime
                    //设置Cookie的value
                    //获取当前时间的字符串 重写设置Cookie的值 重新发送cookie
                    Date date = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                    String str_date = sdf.format(date);
                    //URL编码
                    str_date=URLEncoder.encode(str_date,"utf-8");

                    cookie.setValue(str_date);
                    //设置cookie的存活时间
                    cookie.setMaxAge(60*60*24*30);//一个月
                    resp.addCookie(cookie);

                    //响应数据
                    String value = cookie.getValue();
                    value=URLDecoder.decode(value,"utf-8");
                    resp.getWriter().write("<h1>欢迎回来 您上次访问时间为:"+value+"</h1>");
                    break;
                }
            }
        }
        if (cookies==null||cookies.length==0||flag==false){
            //设置Cookie的value
            //获取当前时间的字符串 重写设置Cookie的值 重新发送cookie
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String str_date = sdf.format(date);
            str_date=URLEncoder.encode(str_date,"utf-8");
            Cookie cookie = new Cookie("lastTime", str_date);
            cookie.setValue(str_date);
            //设置cookie的存活时间
            cookie.setMaxAge(60*60*24*30);//一个月
            resp.addCookie(cookie);

            resp.getWriter().write("<h1>您好 欢迎您首次访问</h1>");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

运行结果

第一次访问

 

 第二次访问

标签:cookie,访问,特点,案例,Cookie,str,date,import
From: https://www.cnblogs.com/aimz01/p/16588137.html

相关文章

  • cookie,localStorage和sessionStorage的区别?
    区别一:存储数据大小不同1.cookie的存储数据大小在不能超过4kb,每个页面最多存储20个cookie2.localStorage能达到10mb,sessionStorage能达到5mb,虽然容量比cookie大,但是local......
  • Response案例2_输出字符数据、Response案例3_输出字节数据
    Response案例2_输出字符数据步骤:获取字符输出流输出数据 @WebServlet(value="/Servlet3")publicclassServlet3extendsHttpServlet{@Override......
  • 接口测试经典面试题:Session、cookie、token有什么区别?
    原文链接HTTP是一个没有状态的协议,这种特点带来的好处就是效率较高,但是缺点也非常明显,这个协议本身是不支持网站的关联的,比如https://ceshiren.com/和https://ceshiren.co......
  • 《网络排查案例课》
    《网络排查案例课》01|网络模型和工具:网络为什么要分层?七层模型;四层/五层模型;五元组;四元组===============================================OSI的七层模型,和TC......
  • HTTP_路径、HTTP_案例路径_绝地路径
    HTTP_路径路径的写法:路径的分类:相对路径:通过相对路径不可以确定唯一资源如:./index.thml不以/开头,以,开头路径规则:......
  • 验证码案例的代码实现和细节处理
    代码实现:login.jsp:<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>login</title><script>window.onload......
  • Respon_案例_重定向、Respon_案例1_重定向_特点
    Respon_案例_重定向案例:完成重定向服务器输出字符数据到浏览器服务器输出字节数据到浏览器验证码图解:   案例:@WebServlet(va......
  • Cookie特点&作用和Cookie案例
    Cookie的特点和作用:cookie存储数据在客户端浏览器浏览器对于单个cookie的大小有限制(4kb)以及对同一个域名下的总cookie数量也有限制(20个)作用:cookie一般用于存储......
  • session的特点以及验证码案例的需求和分析
    session的特点1、session用于存储一次会话的多次请求的数据,存在服务器端2、session可以存储任意类型,任意大小的数据session和Cookie的区别:1、session存储......
  • 案例-文件下载
    案例-文件下载文件下载需求页面显示超链接点击超链接弹出下载提示框完成图片文件下载   分析超连接指向的资源如果能够被浏览器解析则在浏览器中展示,如果......