一个会话就是浏览器与服务器之间的一次通话,
每个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>