码迷,mamicode.com
首页 > Web开发 > 详细

Jsp和session、request.getSession()

时间:2017-09-26 09:26:05      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:char   blog   简单   charset   刷新   客户端   获取   gif   技术分享   

技术分享
  今天在做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()

标签:char   blog   简单   charset   刷新   客户端   获取   gif   技术分享   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!