cookie总结

cookie和session:

  • 一、Cookie和Session
  • 二、使用Cookie保存用户上次的访问时间。
  • 三、Cookie常用方法总结
    • 乱码问题解决:


一、Cookie和Session

在这里插入图片描述
会话:用户从打开浏览器到关闭的整个过程就叫1次会话。

在这里插入图片描述
比如有的网站登录过一次,下次再进去的时候,就不用登录了。
它就用到一些缓存技术。

二、使用Cookie保存用户上次的访问时间。

package com.kuang.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.io.PrintWriter;
import java.util.Date;/****/
//保存用户上一次访问的时间
public class CookieDemo01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//    服务器告诉你,你来的时间。 把这个时间封装成一个信件,你下去带来,就知道你来了。
//        解决中文乱码req.setCharacterEncoding("UTF-8");resp.setCharacterEncoding("UTF-8");PrintWriter out = resp.getWriter();//        Cookie服务端从客户端获取Cookie[] cookies = req.getCookies();//返回数组,说明cookie可能存在多个。//        判断cookie是否存在if (cookies!=null){
//如果存在out.write("你第一次访问的时间是:");for (int i = 0; i < cookies.length; i++) {Cookie cookie = cookies[i];
//                获取cookie的名字if (cookie.getName().equals("lastLoginTime")){
//                    获取cookie的值long l = Long.parseLong(cookie.getValue());//时间戳Date date = new Date(l);out.write(date.toLocaleString());}}}else {out.write("这是您第一次访问本站");}//        服务端给客户端响应一个cookie
//        Cookie cookie = new Cookie("name", "狂神说java");Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis()+"");//        cookie的有效期设置为1天cookie.setMaxAge(24*60*60);resp.addCookie(cookie);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

在这里插入图片描述
在这里插入图片描述
第二次请求就出现时间了。
maxAge可以理解为过期时间。expires:为到期时间,即有效期。
这样就实现了下次进入该页面不用登录了。
如果要删除cookie:


public class CookieDemo02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis() + "");//        将cookie的有效期设置为0,立马过期。cookie.setMaxAge(0);resp.addCookie(cookie);
//        在同一个会话中,名字相同的cookie为同一个}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

三、Cookie常用方法总结

`在这里插入图片描述
在这里插入图片描述

乱码问题解决:

如果在工作中遇到乱码,这种方法是解决乱码最快的方式,一个编码一个解码。

  Cookie cookie = new Cookie("lastLoginTime", URLEncoder.encode("张三","UTF-8"));URLDecoder.decode(cookie.getValue(),"UTF-8");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/259501.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elastcsearch:通过 Serverless 提供更多服务

作者&#xff1a;Ken Exner 人们使用 Elasticsearch 解决最大数据挑战的方式一直令我们感到惊讶。 从超过 40 亿次下载、70,000 次提交、1,800 名贡献者以及我们全球社区的反馈中可以清楚地看出这一点。 Elastic 在广泛的用例中发挥的作用促使我们简化复杂性&#xff0c;让搜索…

oracle 下载java之前版本

登录oracle官网&#xff1a;Oracle | Cloud Applications and Cloud Platform 点击resource 进入该页面 点击这个 出现之前版本

搭配君正主控芯片测评:创想三维物有所值,让你玩3D打印,而不是玩3D打印机

如果你在一年前开始接触3D打印&#xff0c;并且拥有一台入门级的3D打印机。那么&#xff0c;我相信很大一部分时间你是在给机器打“补丁”&#xff0c;让它真正能为你所用。而这台机器很可能是来自创想三维&#xff0c;不出意外就是其Ender系列的某一款。 然而&#xff0c;现在…

如何进行更好的面试回复之缓存函数在项目中的性能优化?

缓存函数是一种提高函数性能的技术&#xff0c;在函数被调用时&#xff0c;会将计算结果缓存起来&#xff0c;以便在后续的调用中直接返回缓存的结果&#xff0c;从而减少了重复计算的时间。 缓存函数的实现通常包括两个步骤&#xff1a; 判断缓存是否存在&#xff1a;在函数被…

Ubuntu22.04安装完成后便可直接使用键盘上的Print键进行截图

概要&#xff1a;Ubuntu22.04安装完成后&#xff0c;无需安装什么截图软件&#xff0c;可以直接使用键盘上的Print键进行截图。 1、按一下Print键 我的电脑上Print键是PrtSc&#xff0c;如下图所示 2、框选区域并截图 如下图中&#xff0c;可以框选(Selection)&#xff0c;也…

VUE学习二、创建一个前端项目

1.创建一个vue项目 使用命令 vue ui启动vue脚手架 vue ui 等待项目创建好 可以来任务栏启动项目 参数那里可以设置启动端口等参数 启动成功 成功访问 2. 用webstorm 打开项目 脚手架页面可安装基本依赖 比如路由 使用ws打开项目 启动项目 npm run serve 3.修改启动…

基于java斗车交易系统设计与实现论文

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

金蝶 Apusic 应用服务器任意文件上传漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 1. 产品介绍 金蝶 Apusic 是金蝶集团旗下的一款企业级应用服务器&#…

golang slice 数组针对某个字段进行排序

这里主要用到golang的sort.Sort方法&#xff0c;先看这个函数的简介&#xff1a; 介绍链接&#xff1a;https://books.studygolang.com/The-Golang-Standard-Library-by-Example/chapter03/03.1.html 如何实现&#xff1a; import "sort"// UserInfo 用户信息结构…

Git:修改最近一次 Git 提交的描述,使用 --amend 选项

目录 步骤1. 使用编辑器修改最近一次提交的描述 git commit --amend2. 在编辑器中修改描述3. 保存修改4. 如果提交包含文件修改5. 强制推送&#xff08;如果已经推送到远程仓库&#xff09; 步骤 1. 使用编辑器修改最近一次提交的描述 git commit --amend git commit --amend…

Elasticsearch:使用 Elasticsearch 向量搜索及 RAG 来实现 Chatbot

Elasticsearch 的向量搜索为我们的语义搜索提供了可能。而在人工智能的动态格局中&#xff0c;检索增强生成&#xff08;Retrieval Augmented Generation - RAG&#xff09;已经成为游戏规则的改变者&#xff0c;彻底改变了我们生成文本和与文本交互的方式。 RAG 使用大型语言模…

C语言第十七集(待修)

11.30的视频 1.结构体可以这样重新赋值 注:字符数组不能用来赋值 2.匿名结构体重新赋值方法: 注:在创建x时就已经使用过一次匿名结构体了 但是,在使用匿名结构体时,可以一次性创立多个变量 3.结构体内存对齐和对其规则详细搜: 4.总之,我们在创建结构体时,要将占用空间小的成…