session的作用相当于一个信号,作用是通过这一个信号将客户端与服务器的一次完整的会话(这里说的完整是在保证服务器端不删除session数据的情况下)记录下来
运作机理
在第一次客户端通过浏览器向客户端进行访问时——>服务器端会自动为本次访问进行一次记录,记录为cookie,并返回给浏览器;
在后面的访问时,浏览器对再次向服务器发送请求时,会“携带”cookie向服务器进行请求,服务器通过该ID就可以将客户的本次请求与上一次请求结果进行衔接,直到客户关闭浏览器——>意味着本次会话的结束
客户端没有禁用cookie的情况下,客户端使用cookie保存sessionID。如果cookie禁用,则会自动转化为用URL-rewriting(URL重写,URL中包含sessionID)技术实现。
操作
一、服务器端方面,可以设置对服务器端的session对象进行清零,可以设置清除间隔——>
在web项目中的web.xml进行修改,其中在session-timeout中添加删除时间(单位是分钟),其含义是在客户最后一次请求后到删除的时间
session常用方法
setAttribute:设置指定名字的参数值;session中保存的对象随Tomcat服务器正常关闭(通过shutdown.bat关闭)而保存到work文件夹相应目录中(Tomcat安装根目录\work\Catalina\localhost\XXX),随Tomcat的启动而重新使用。
getAttribute:获取指定属性的值,如果该属性值不存在则返回null;
removeAttribute:删除session中的一个属性
getId():获取sessionID
isNew():每个请求是否会产生新的session对象//此时可以通过该方法判断是否需要重新登陆
setMaxInactiveInterval():设置停止操作后session对象的有效时间。