HttpSession源码
HttpSession接口位于javax.servlet.http包下,和cookie位于同一个包
源码如下:
public interface HttpSession {
//返回session创建时间
public long getCreationTime();
//返回sessionId,Id由服务器自动创建,不会重复
public String getId();
//返回session最后一次活跃的时间
public long getLastAccessedTime();
public ServletContext getServletContext();
//设置session超时时间
public void setMaxInactiveInterval(int interval);
public int getMaxInactiveInterval();
public HttpSessionContext getSessionContext();
//获取session属性
public Object getAttribute(String name);
public Object getValue(String name);
//返回session中存在的属性名
public Enumeration<String> getAttributeNames();
public String[] getValueNames();
//设置session的属性
public void setAttribute(String name, Object value);
public void removeValue(String name);
//移除session属性
public void removeAttribute(String name);
//设置失效
public void invalidate();
//是否是新建的
public boolean isNew();
}
HttpSession使用
- session使用在服务端
- session还是依赖于cookie,服务端给客户端发送JSESSIONID的cookie,这就是sessionId的由来,依据这个判断是否为同一用户。
- 不同的浏览器会生成不同的session,但是同一浏览器会使用同一个session
- session中禁止使用cookie,统一使用URL地址重写。