Session
1、Session:在web开发过程中,服务器给每个用户浏览器会创建一个会话对象(session对象)。一个浏览器独享一个session对象,因此在保存用户数据时,服务器程序可以把用户数据写到用户浏览器独享的session中。当用户使用浏览器访问其他程序时,其他程序可以从用户的session中取出该用户的数据,直接使用。
2、Session和cookie的区别
(1)、Cookie是把用户的数据写给用户浏览器。
(2)、Session技术把用户的数据写到用户独占的session中。
(3)、Session对象由服务器创建,程序员可以调用request对象中的 getSession()方法得到session对象。
(4)、Cookie安全性不高,因为cookie信息是存储在客户端,其他人很容易存放到cookie中去,容易造成cookie欺骗;而session信息是存储在服务器上,因此比较安全。
(5)、单个Cookie保存的数据时不超过4k,每个浏览器限制每个站点最多存储20个Cookie;而Session不存在这种问题。
3、Session的实现原理
服务器创建Session之后,会把session的ID,以cookie的形式回写给用户机,只要用户机的浏览器没有关闭,再次去访问服务器时,都会带着session的ID号去,服务器就会发现浏览器带着session的ID号,就会使用内存中与之对应的session位置服务。
4、session对象的创建和销毁
创建:在程序中第一次调用request.getSession()方法时就会创建一个新的session,可以用isNew()方法来判断Session是不是新创建的。
销毁:session对象的默认30分钟没有使用,服务器就会自动销毁session,也可以在.xml文件中设置session的失效时间。