静下心,总能进BAT
今日主题:深入了解java 中的session
今天2019年10月20日结束了中北大学的16级校招,四个字总结:失望透顶,来的企业让我觉的我很对不起自己.唯一的收获就是一道面试题,然后我深入的了解了session
首先明确为甚要有session ,
因为HTTP协议是无状态的协议,简单说就是他没记忆力,不会记录谁是谁,所以要有会话机制来保留客户端信息.
其次说一下session的机制
客户端调用HttpServletRequest.getSession()来创建session,创建的session是保留在Tomcat服务器的内存中,他不是持久化的,服务器重启或者超时就是失效. 同时,生成的sessionID,会被浏览器的Cookie保留.每次客户端也就是浏览器发出请求,在其请求头都会带着这个sessionID,服务器就达到了识别不同客户端的功能.
最后明确这是何种会话,以及会遇到的问题及如何解决
当浏览器关闭则Cookie存的东西全部失效,即使服务器还存有sessinID以及对session,也没有访问他的客户端sessionID了. 因此他只是客户端浏览器范围的会话.
还有一个问题假如客户端禁用Cookie怎么办?解决方案:使用url重写技术:别再将sessionID放到请求头中去像服务器发起,而是写到URL中像服务器发起访问.