Session机制
Posted 曹军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Session机制相关的知识,希望对你有一定的参考价值。
一:
1.介绍
对于会话与状态管理,有两种方式,cookie与session。
其中,cookie机制采用客户端保持cookie的方案。
而,session机制采用的是服务器保持Http状态信息的方案。
2.响应方式
以cookie的方式进行实现的。
浏览器打开,对服务器进行访问,这时因为第一次进行访问,所以没有sessionId,所以服务端会新建一个HttpSession,将sessionId以set-cookie的方式将sessionId返回给浏览器,在这次会话中,浏览器进行下次访问服务端时,会以cookie的方式将返回的sessionId带上,与服务端保存的sessionId进行比较,完成下面的会话。
3.保存sessionId的几种方式
保存sessionId可以采用cookie,这样交互过程中浏览器可以自动根据规则把这个标识发送给服务器。
因为cookie会被禁用,因此必须有其他的机制能够把sessionId传递给服务器,经常采用的是URL重写,就是将sessionI附加到URL路径的后面。
4.Seeion cookie
session通过SessionId区分不同的客户,以cookie或URL重写为基础的。
默认使用cookie实现,系统会创造一个名为JSESSIONID的输出cookie,成为session cookie,以区别常说的cookie。
session cookie是存储在浏览器的内存中,并不写到硬盘上,但是也可以进行持久化写到硬盘。
5.持久化程序
在一段时间内再次打开浏览器,SessionId不会变。
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <%=session.getId() %> 11 <% 12 Cookie cookie=new Cookie("JSESSIONID",session.getId()); 13 cookie.setMaxAge(60); 14 response.addCookie(cookie); 15 %> 16 </body> 17 </html>
二:session的生命周期
1.
以上是关于Session机制的主要内容,如果未能解决你的问题,请参考以下文章
hibernate笔记--缓存机制之 一级缓存(session缓存)
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段