分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Jsp和session、request.getSession()

发布时间:2023-09-06 01:13责任编辑:熊小新关键词:暂无标签
  今天在做CAS单点登录时,发现访问客户端,在不关浏览器且只在同一个页签里访问的情况下,先访问客户端A登录成功,再访问B创建了ticket,刷新B则不会再创建ticket,再重新访问A,发现又创建了一遍ticket,不是已经创建过了session了吗?而且浏览器没有关闭,只是在同一个页签里也会导致之前的session被销毁吗?debug看代码,确实在再次访问A的时候session已经没了,不过那个地方写的是
这段是个人吐槽无需观看

以下是正文:

request.getSession(false);

这段代码代表,如果没有和当前request关联的session则不创建session并且返回空

request.getSession(true);或者request.getSession();

这两段代码等价,标识如果当前request关联了session则直接返回关联的session,如果没有则创建一个session

简单说一下:

1、当前request如果没有带着sessionid,那么肯定是没有关联session的

2、如果当前request带着sessionid,而服务器上没有匹配该sessionid的session,那么也是没有关联session

有的哥们看完后可能想直接写个jsp测试一下

但是在jsp中无论怎么测session都不会为空。

这是因为jsp的代码里面已经有了getSession():

上面jsp在初始化session的时候已经创建了session,所以到后边不论我怎么获取,这个session都是存在的。

解决办法就是加上session=false:

<%@ page language="java" contentType="text/html; charset=UTF-8" ???pageEncoding="UTF-8" session="false"%>

Jsp和session、request.getSession()

原文地址:http://www.cnblogs.com/flying607/p/7594916.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved