首页 > Web开发 > 详细

Jsp和session、request.getSession()

时间:2017-09-26 09:13:28      阅读:354      评论:0      收藏:0      [点我收藏+]
技术分享
  今天在做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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!