Cookie与Session

首先
我们要了解一下什么是会话
会话:打开浏览器,进行网页的访问,在关闭浏览器,这个过程称作一次会话。
而***Cookie与Session就是保存会话的两种技术***。

Cookie

1.什么是Cookie
简而言之,当浏览器向服务器发起请求,如果服务器需要记录该状态,服务器就会向浏览器颁发一个Cookie。浏览器会把Cookie保存在本地。当浏览器再请求该服务器时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认浏览器状态。
2.常用方法建立或者设置Cookie的一些属性的方法
建立或者设置Cookie的一些属性需要用到

3.Cookie的细节问题

a.一个Cookie只能保存一个信息。
b.一个web网站可以给浏览器发送多个cookie,最多村脏20个Cookie
c.cookie大小有限制,4kb
d.浏览器上限为300个Cookie

4.如何删除Cookie

a.不设置有限期,关闭浏览器自动失效
b.设置有效期为0( cookie.setMaxAge(0) )

Session

1.什么是Session

	a.服务器会给每一个用户(客户端)创建一个Session对象
	b.一个Session对象独占一个浏览器,只要浏览器没有关闭,这个Session就存在
	c.用户登录之后,整个网站它都可以访问→保存用户信息,购物车的信息等

2.Session的使用场景

	a.将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中。
	b.保存一个登录用户的信息
	c.购物车信息
	d.整个网站中经常会使用到的数据

3.Session的使用
a.创建过程如下

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //解决乱码问题
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        //得到Session
        HttpSession session = request.getSession();
        //给Session存东西
        session.setAttribute("LoginName",new Person("张三",22));
        //获取SessionID
        String sessionId = session.getId();
        //判断Session是否是新创建的
        if (session.isNew()){
            response.getWriter().write("这个Session是新创建的,ID;"+sessionId);
        }else {
            response.getWriter().write("这个Session已经存在,ID;"+sessionId);
        }
    }
    public class Person {
        String name;
        int age;
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }

b.注销

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        HttpSession session = request.getSession();
        //移除Session
        session.removeAttribute("LoginName");
        //使该session无效,手动注销session
        session.invalidate();
       
    }

c.设置Session的有效时间
在这里插入图片描述

Session与Cookie的区别

首先看图释
Cookie
在这里插入图片描述
Session
在这里插入图片描述
1.Cookie是把用户的数据写给用户的浏览器,浏览器(客户端)可以保存
2.Session把用户的数据写到独占的Session中,服务器端保存(保存重要的信息,简绍服务器资源的浪费)
3.Session对象由服务器创建

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值