package javax.servlet.http;
import java.util.Enumeration;
import javax.servlet.ServletContext;
/**
* 目的:识别用户并存储用户信息
*
* <p>识别用户访问多个网页或一个网址,并存储用户信息。
*
* <p>servlet容器使用该接口创建一个session。在session的保留时间内,用户
* 可以跨越多个连接或页面请求。一个session对应一个用户。服务端能以多种方式来
* 维护session,如:Cookie或重写URL。
*
* <p>该接口允许servlet有以下操作:
* a. 查看和操作session信息,如:sessionID、创建时间、最后访问时间;
* b. 绑定对象,允许用户信息跨越多请求连接。
*
* <p>当应用程序从session中存储或删除对象时,session会检查该对象是否实现
* {@link HttpSessionBindingListener}。若实现,servlet将通知
* 对象,session是否绑定了。绑定方法完成之后进行通知。对于session的无效或
* 过期,session无效或过期之后进行通知。
*
* <p>分布式容器设置中,当容器在VM之间迁移session时,所有的session将实现
* {@link HttpSessionActivationListener}接口。
*
* <p>servlet能够处理用户没有参加session的情况,比如:客户端Cookie关闭。
* 客户端没有参加session时,isNew返回为true。对于客户端的每一个请求,
* getSession将返回不同的session,并且isNew总是为true。
*
* <p>Session范围仅是当前web应用程序(ServletContext),信息都存在
* ServletContext中,其他应用程序不会看到。
* @author TCM
* @create 2017年10月26日上午10:00:00
* @see HttpSessionBindingListener
* @see HttpSessionContext
*/
public interface HttpSession {
//session的创建时间
public long getCreationTime();
//获取sessionID
public String getId();
//客户端最后访问时间
public long getLastAccessedTime();
//返回该session所属的ServletContext对象
public ServletContext getServletContext();
//设置session无效的间隔时间,单位:秒
public void setMaxInactiveInterval(int interval);
public int getMaxInactiveInterval();
/**
* 返回该session绑定的对象,若没有返回null
* @exception IllegalStateException
*/
public Object getAttribute(String name);
public Enumeration<String> getAttributeNames();
public void setAttribute(String name, Object value);
public void removeAttribute(String name);
/**
* 将session无效,然后解除该session绑定的任何对象
* @exception IllegalStateException
*/
public void invalidate();
/**
* 若果客户端没有session或没有参加session,将返回true。
* 例如:客户端禁用Cookie,那么对于每一个请求都创建一个新的session。
* @return 返回true,创建一个session
* @exception IllegalStateException
*/
public boolean isNew();
}
HttpSession源码翻译
最新推荐文章于 2024-04-18 03:59:55 发布