对httpsession的一点点认识

 刚开始学习servlet的时候大家可能会很迷惑这个httpsession到底是什么玩意儿,好像抽象,不太容易理解。本文只是谈点个人浅显的认识

1.httpsession的具体概念我也不太清楚,用了就知道是什么。想它就是服务器与客服端会话时产生的一个东东就可以了。

2.httpsession会话的工作原理

 当执行HttpServletRequest.getsession()时,web容器会建立httpsession,并给予这个httpsession一个session ID(唯一身份证),cookie会将这个session ID存入浏览器。
 需要注意的是httpsession并不是在浏览器访问某个url地址时就会创建,而是一定在某个server端程序调用了HttpServletRequest.getsession()的方法时才创建。   
 当浏览器请求应用程序时发送session ID,容器会根据发送过来的session ID 取得相应的httpsession。

3.httpsession到底存在什么地方?
  这个按正常人的思维来想就知道httpsession肯定是存在服务器端的内存中,记得httpsession的创建和使用总在服务端

4.每次浏览器关闭之后就取不到原来的httpsession,是不是httpsession在浏览器关闭时失了?
  其实上关闭浏览器时失效的是cookie,所以就不能通过cookie来发送原先的session ID,当尝试getSession()的,容器会产生新的httpsession,而原先的httpsession还存在内存中,并没有失效。

要想让httpsession失效可以调用它的invalidate()方法,也可以调用setMaxInactiveInterval()方法,这样就设置了在浏览器规定时间内没有请求程序时使httpsession自动失效。

你可能感兴趣的:(Httpsession)