Session会话

什么是Session会话?

  1. Session就是一个接口(HttpSession)
  2. Session就是会话。它是用来维护一个客户端和服务器之间的一种关联的一种技术。
  3. 每个客户端都有自己的一个Session会话。
  4. Session会话中,我们经常用来保存用户登录之后的信息。

如何创建Session和获取(id号,是否为新)

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

isNew();判断到底是不是刚创建的(新的)
true 新的
false 获取之前创建的
每个会话都有一个身份证号。也就是ID值。而且这个ID值是唯一的。
getId() 得到的是Session的会话的id值。

 //获取和创建的Session会话对象
        HttpSession session = req.getSession();
        
        //判断当前session会话,是否是新创建出来的
        boolean isNew = session.isNew();
        
        //获取session会话的唯一标识
        String id = session.getId();
        
        resp.getWriter().write("sessionID="+id);

Session域数据的存取

 protected void getSession(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object key1 = req.getSession().getAttribute("key1");
    }

    protected void setSession(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getSession().setAttribute("key1","values1");
    }

Session生命周期控制

public void setMaxInactiveInterval(int interval) 设置Session的超时时间(以秒为单位),超过指定的时长,session就会被销毁。

public void invalidate() 让当前会话马上超时无效

值为正数的时候,设定session的超时时长
为负数时永不超时(极少使用)

public int getMaxInactiveInterval()获取session的超时时间
session默认的超时时长是:1800秒

因为在Tomcat服务器的配置文件web.xml中默认有以下的配置,他表示配置了当前tomcat服务器下的所有session超时配置默认时长为:30min

<session-config>
	<session-timeout>30</session-timeout>
</session-config>

如果要修改web工程session的会话时长,可以修改自己的web.xml配置

如果修该单个session的超时时长。就可以使用api。
setMaxInactiveInterval(int interval)来进行单独的设置。
在这里插入图片描述

浏览器和Session之间的关联内幕

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为大牛的渣渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值