首页 > 其他分享 >HttpSession对象 的学习

HttpSession对象 的学习

时间:2022-10-11 22:24:17浏览次数:42  
标签:String 对象 request 学习 获取 session println HttpSession

HttpSession对象

学习链接:https://www.bilibili.com/video/BV1BK4y1P7Li/?spm_id_from=333.999.0.0

1. session作用:

表示一次会话或者是确认一个用户,并且在一次会话中,一个用户可以多次请求,并且在期间数据是共享的。

2.基本操作

        //获取session对象:存在则获取session对象,不存在就创建session对象
        HttpSession session = request.getSession();
        //获取且打印session的会话标识符
        System.out.println(session.getId());
        //获取且打印session的创建时间
        System.out.println(session.getCreationTime());
        //获取且打印最后一次访问时间
        System.out.println(session.getLastAccessedTime());
        //判断且打印是否是新的session对象
        System.out.println(session.isNew());

 

 

 

 3.JSESSIONID:

是一次会话的唯一标志,如果改变了,就是下一次会话了,同时,控制台的 id/标识符就会改变。

例如:在网页中删除这个JSESSIONID

 

 这时会重新传一个新id

 

 

 

 但是如果服务器重启了,则这些对象都清空了,服务端没有session对象了,就算客户端传相同的ID进来,他也只是会重新创建一个session对象,即id/标识符还是和以前不一样的。(session对象属于服务器的一个对象)

4.session域对象

只要session不销毁,session域对象是可以一直进行共享数据的。

        //获取session对象:存在则获取session对象,不存在就创建session对象
        HttpSession session = request.getSession();
        //设置域对象
        session.setAttribute("uname","hmy");
        session.setAttribute("upwd","123456");
        //移除session域对象
        session.removeAttribute("upwd");

        //request域对象
        request.setAttribute("name","zhangsan");
    //获取session域对象
    String uname = (String)request.getSession().getAttribute("uname");
    String upwd = (String) request.getSession().getAttribute("upwd");

    //获取request域对象
    String name = (String) request.getAttribute("name");

5.销毁session对象

1)默认时间

在客户端第一次请求servlet并且操作session时候,session对象生成,Tomcat中默认存活时间为30分钟,不过默认时间也是可以自行修改的,可以在 Tomcat 的 conf 目录下的web.xml文件中修改(不建议修改)

 

 以记事本方式打开,CTRL+F查找

 

 

 

 2)手动修改到期时间

        //获取最大不活动时间:
        System.out.println("Session最大不活动时间:"+session.getMaxInactiveInterval());
        //手动修改最大不活动时间( 注意,单位是s  )
        session.setMaxInactiveInterval(15);

3)立即销毁

即每次刷新,值都会改变

        //立即销毁
        session.invalidate();

4)关闭浏览器就失效(????没有实现)

session底层依赖cookie,cookie对象默认只在浏览器内存中存活,关闭浏览器就会失效了。

注意:是关闭浏览器再启动,后台不动。

5)关闭服务器就失效

关闭服务器时,session销毁。

标签:String,对象,request,学习,获取,session,println,HttpSession
From: https://www.cnblogs.com/hmy22466/p/16782856.html

相关文章

  • Netty学习之NIO基础
    Netty学习之NIO基础本博客是根据黑马程序员Netty实战学习时所做的笔记可先参考博客JavaNIO一、三大组件简介Channel与BufferJavaNIO系统的核心在于:通道(Channel)和......
  • drf学习-9
    drf之内置认证类BasicAuthenticationRemoteUserAuthenticationSessionAuthentication:session认证 如果前端带着cookie过来,经过session的中间件,如果登录了,在request.use......
  • 一文了解 Python 中的对象比较方法 is 和 == 及其本质
    1Python中的对象ID我们在学习基础的时候没听说Python有C或C++中的指针啊,Python中指针是什么?先把指针这个概念放一放,一提到指针可能初学C和C++的人都害怕(本人......
  • 如何快速学习Go的切片和数组数据类型
    本文已收录​​如何快速学习Go的struct数据类型​​。涵盖PHP、JavaScript、Linux、Golang、MySQL、Redis和开源工具等等相关内容。什么是数组数组是属于同一类型的元素的集......
  • 【GIS开发】OpenLayers入门学习(JavaScript库)
    1、简介官网地址:https://openlayers.org/源码地址:https://github.com/openlayers/openlayersOpenLayers是一个高性能、功能丰富的库,用于在Web上创建交互式地图。它......
  • vivo互联网机器学习平台的建设与实践
    vivo互联网产品团队-Wangxiao随着广告和内容等推荐场景的扩展,算法模型也在不断演进迭代中。业务的不断增长,模型的训练、产出迫切需要进行平台化管理。vivo互联网机器学......
  • IRP IO_STACK_LOCATION 《寒江独钓》内核学习笔记(1)
    在学习内核过滤驱动的过程中,遇到了大量的涉及IRP操作的代码,这里有必要对IRP的数据结构和与之相关的API函数做一下笔记。 1.相关阅读资料《深入解析windows操作系统(第4......
  • EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内核学习笔记(2)
    在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构:EPROCESS/KPROCESS/PEB。把它们放到一起是因为这三个数据结构及其......
  • ETHREAD APC 《寒江独钓》内核学习笔记(4)
    继续学习windows中和线程有关系的数据结构:ETHREAD、KTHREAD、TEB 1.相关阅读材料《windows内核原理与实现》---潘爱民   2.数据结构分析我们知道,windows内核中......
  • windows内核Api的学习
    windows内核api就是ntoskrnl.exe导出的函数。我们可以跟调用应用层的api一样,调用内核api。不过内核api需要注意的是,如果函数导出了,并且函数文档化(也就是可以直接在msdn上搜......