不一样的Cookie 和 Session 关联

人生之路坎坎坷坷,跌跌撞撞在所难免。但是,不论跌了多少次,你都必须坚强勇敢地站起来。任何时候,无论你面临着生命的何等困惑抑或经受着多少挫折,无论道路多艰难,希望变得如何渺茫,请你不要绝望,再试一次,坚持到底,成功终将属于勇不言败的你。

导读:本篇文章讲解 不一样的Cookie 和 Session 关联,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Cookie

Cookie是服务器通知客户端保存键值对的一种技术
客户端每次发送请求都会携带Cookie到服务器【<=4KB】
cookie的创建
获取Cookie

cookie的创建

<a href="cookieservlet?action=createCookie" target="target">cookie的创建</a>
protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws Exception {
    //1 创建cookie对象
    cookie cookie = new cookie("key2","value2");
    //2通知客户端保存cookie
    resp.addcookie(cookie);
    // 创建多个Cookie
    cookie cookie1 = new cookie("key3","value3");
    resp.addcookie(cookie1);
    //打印到屏幕上
    resp.getwriter().write("cookie创建成功");
}

请求头
在这里插入图片描述
查看Cookie
在这里插入图片描述

cookie获取

<a href="cookieservlet?action=getCookie" target="target">cookie获取</a>
protected void getcookie(HttpservletRequest req, HttpServletResponse resp) throws Exception {
    cookie[] cookies = req.getcookies();
    for (cookie cookie : cookies) {
        // getName方法返回cookie的key (名)
        // getvalue方法返回cookie的value值
        resp.getwriter().write( "cookie[" + cookie.getName() + "=" + cookie.getvalue() + "]<br/>");
    }
}

在这里插入图片描述

Cookie的生命控制

setMaxAge()

正数,表示在指定的秒数后过期
负数,表示浏览器一关,cookie就会被删除【默认值是-1,即session】
零,表示马上删除cookie

Cookie的path路径

protected void testPath(HttpServletRequest req,HttpServletResponse resp throws Exception {
    cookie cookie = new cookie("path1","path1");
    // getcontextPath( ) ===>>>>得到工程路径【只有匹配路径的才会有效】
    cookie.setPath( req.getContextPath() + "/abc" ); // ===>>>>/工程路径/abc
    resp.addcookie(cookie);
    resp.getwriter( ).write( s:"创建了一个带有Path路径的cookie");
}

================================= 一条华丽的分割线 ==================================================

Session

每个客户端都有一个session来保存用户登录后的信息

Session的创建和获取

request.getSession() 第一次调用是:创建Session会话 之后调用都是:获取前面创建好的session会话对象。

isNew();判断Session到底是不是刚创建出来的(新的)
getld()得到session的会话id值。

Session的创建和获取

protected void createOrGetSession(HttpServletRequest req, HttpServletResponse resp) throws ServletEx(
    //创建和获取session会话对象
    Httpsession session = req.getsession();
    //判断当前session会话,是否是新创建出来的
    boolean isNew = session.isNew( );
    //获取session会话的唯一标识id
    string id = session.getId();
    resp.getwriter().write( "得到的session,它的id是:" + id + " <br />");
    resp.getwriter().write( "这个session是否是新创建的: " + isNew + " <br /> ");
}

Session域中数据的存取

req.getsession( ).setAttribute( "key1", "value1");
req.getsession().getAttribute( "key1" );

Session 生命周期

setMaxInactiveInterval(1200)

值为正数的时候,设定session的超时时长。
负数表示永不超时(极少使用)
session.invalidate() 让当前session会话马上超时无效。

// 设置Session的超时时间〈以秒为单位),超过指定的时长,Session就会被销毁。
setMaxInactiveInterval(int interval)
// 获取Session的超时时间
getMaxlnactivelnterval()
//session默认的超时时间长为30分钟,因为在Tomcat服务器的配置文件web.xml中有默认配置
// 单独设置超时时长。
session.setMaxInactivelnterval(int interval)

session超时
================================= 一条华丽的分割线 ==================================================

Cookie和Session

Session 技术,底层其实是基于cookie技术来实现的。
因为cookie创建的JSESSIONID,默认的生存时间为session,即关闭浏览器就消失
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/133728.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!