Session是什么时候建立的

本文详细介绍了HTTP协议的无状态特性以及服务器如何通过创建会话对象来维持客户端状态。讲解了`request.getSession()`方法在不同参数下的行为,指出并非每次请求都会创建新的Session。同时,讨论了在JSP中如何默认启用或禁用自动创建Session,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

HTTP协议是一种无状态的协议,HTTP服务器对客户的每个请求和响应都是作为一个分离的事务处理。服务器无法确定多个请求是来自相同的客户还是不同的客户。这意味着服务器不能再多个请求中维持客户的状态。

创建会话对象是服务器的主动行为。一般客户向服务器发送第一个请求的时候,

首先明确两点:

  1. request.getSession()在没有session的时候会创建session

    //如果当前没有session,则会立刻建立一个session;如果有session则返回当前session
    HttpSession session = request.getSession();
    HttpSession session = request.getSession(true);
    
    //这句话不会建立session,如果当前没有seesion建立的话,控制台输出应该是true的
    HttpSession session = request.getSession(false);
    System.out.println(session==null);
    
  2. jsp中指令session默认配置为true

    <%@ page session="true"%>
    

    jsp编译后的java文件包含以下代码

    session = pageContext.getSession();
    

    因此当这个jsp页面执行时,这句话就会帮你创建session了

    若要禁用jsp的自动创建session,可以显式声明

    <%@ page session="false"%>
    

综上,并不是一请求页面就会创建session

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值