IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Cookie和Session -> 正文阅读

[JavaScript知识库]Cookie和Session

相同点:

两者都用来跟踪客户端身份

不同点:

1、数据存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、安全性:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3、服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

4、数据大小:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

注意:

Cookie:

  1. Cookie有效期时间设为0的话每次关闭会话就清除Cookie
  2. 一个Cookie只能保存一个信息(一个键值对)
    Cookie c=new Cookie(String,String)
  3. 浏览器Cookie有上限(300)
    Cookie把数据写给浏览器,浏览器来保存
  4. 第一次访问,服务器给用户发送一个cookie,下次访问时携带cookie访问,便知道是否首次访问
    在这里插入图片描述
package com.csf.Cookie;

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;

/**
 * @ClassName Cookie1
 * @Author 陈世枫
 * @Date 2022/1/23 15:57
 * @Version 1.0
 **/
public class Cookie1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        PrintWriter out = resp.getWriter();
        Cookie[] cookies = req.getCookies();;
        if (cookies!=null){
            out.println("欢迎你再次访问本网站,您上次访问时间为:");
            for (int i=0;i<cookies.length;i++){
                if (cookies[i].getName().equals("LastLoginTime")){
                    out.println(cookies[i].getValue());
                }
            }
        }else {
            out.println("您首次登录本网站");
        }
        Cookie c=new Cookie("LastLoginTime",System.currentTimeMillis()+"");
        resp.addCookie(c);
    }

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

Session:

  1. 服务器会给每一个用户(浏览器)分配一个Session对象,给一个唯一不变(再关闭会花前)的ID(服务器创建
  2. 可通过Maven配置session失效时间,分钟为单位
  3. Session把用户数据写道Session中,服务器保存
  4. 访问服务器是登记SessionID,返回给用户,存储东西时用服务器中的Session,所以不同用户中的ID不同所看到的存储数据也不同
    在这里插入图片描述
	 req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        HttpSession session = req.getSession();
        session.setAttribute("name","lqt");	 	由session写入数据
        PrintWriter writer = resp.getWriter();
        if (session.isNew()){
            writer.println("已经创建了ID:"+session.getId());
        }else {
            writer.println("创建了ID:"+session.getId());
        }

		String name = (String) session.getAttribute("name"); 		获得键值对的值
        PrintWriter writer = resp.getWriter();
        writer.println(name);
        
        String name = (String) session.getAttribute("name");
        session.removeAttribute(name);		移除相应的键值对
        session.invalidate();				手动关闭Session
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 10:44:41  更:2022-01-24 10:46:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:31:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码