一、Session生成的问题
session对象由服务器创建,浏览器首次访问jsp页面,默认会通过request对象创建一个Session,同时会生成一个sessionID(这个sessionID通常个保存到cookie中,通过response对象传递给浏览器),每次浏览器请求服务器,会通过路径,判断是否要将该cookie发送给服务器,如果将吃cookie发送给了服务端,服务端就能通过,request.getSession(boolean flag),如果flag=true,就会查看sessionID,到里面会对传过来的ID与服务端保存的session进行匹配,就能拿到对应的session了,就能通过session传递信息,进行会话了。
session在访问tomcat服务器HttpServletRequest的getSession(true)的时候创建,tomcat的ManagerBase类提供创建sessionid的方法:随机数+时间+jvmid;
二、禁用cookie解决方案
当禁用cookie,sessionID通过重写URL的方式进行传输。
cookie不安全,数据量有限制,存储在浏览器端,常用于传输数据
session消耗性能,常用于存储用户信息。