session的用法

一个会话就是浏览器与服务器之间的一次通话,
每个session都有一个唯一的sessionId,
session存储在服务器端。

可以使用session.getId();获取的到sessionId。


工作方式:
  请求1: 浏览器发送请求到服务器,服务器会产生一个sessionId,
  响应1:服务器返回响应(携带sessionId)。
  请求2: 浏览器再次向服务器发送请求,这个请求就会携带sessionId。
  响应2:感觉自己说的不是很明白,不知道会不会有人能看懂。


session的用法(与request用法相似,只是作用域不同):
 public void setAttribute(String name,Object);
 用法:session.setAttribute("userName","fifiyong");
 public Object getAttribute(String name);
 用法:String userName=(String)session.getAttribute("userName");

 注意:记得要进行非空验证与类型转换。


会话的清除和过期:

  

  session失效的三种原因:浏览器超过30分钟未反应,服务器(Tomcat)异常关闭,手动关闭session.invalidate();

 程序主动清除session数据:
  方法一:设置会话失效:session.invalidate();
  方法二:移除会话的一个属性:
  public void removeAttribute(String name);
  用法:session.removeAttribute("userName");

 <%
  //实现注销
  //session.removeAttribute("user");
  session.invalidate();
  response.sendRedirect("userLogin.jsp");
%>


 服务器主动清除长时间没有再次发出请求的session:
  在程序中设置会话过期时间:
  方法一:public void setMaxInactiveInterval(int interval);
  int interval单位是秒
  方法二:在web.xml中添加,注意是30分钟
  <session-config>
   <session-timeout>30</session-timeout>
  </session-config>

原文地址:https://www.cnblogs.com/fifiyong/p/5931348.html