session熟知

时间:2023-03-09 22:02:08
session熟知

Session

  服务器端保存会话信息的技术.

 //如何获得session
HttpSession session = request.getSession();
//如何操作session
session.setAttribute(arg0, arg1)
session.getAttribute(arg0)
session.removeAttribute(arg0)
session.getAttributeNames()

原理

  浏览器第一次访问服务器,服务器会在内存中开辟一个空间(session),并把session对应的ID发送给浏览器.那么下次浏览器再去访问服务器,会把sessionID 交给服务器,服务器通过sessionID 找到刚才开辟的空间.

Session细节问题

  1. 服务器让浏览器记住sessionID的cookie 默认过期时间是 (-1)==> 关闭浏览器cookie就丢失 ==> cookie丢失sessionID就丢失 ==> 找不到服务器的session
 session中除了4个操作map的方法之外,其它方法
long getCreationTime() 获得创建时间
String getId() 获得sessionID
long getLastAccessedTime() 获得最后一次访问时间
int getMaxInactiveInterval() 获得session的寿命
void setMaxInactiveInterval(int interval) 设置session的过期时间
void invalidate() 让session立即失效
boolean isNew()

关于设置session的最大有效时间

默认是30分钟.   在tomcat的web.xml中 <session-config> 配置的.如何修改session的过期时间?
  1.修改在tomcat的web.xml中 <session-config> ==> 影响服务器中的所有项目
  2.在项目的web.xml中 加入<session-config> 配置.==> 影响的是当前项目
  3.通过setMaxInactiveInterval(int interval)方法设置.==> 当前操作的session