会话是指用户通过浏览器向服务器发送请求信息,服务器将处理用户的请求信息,并将响应结果返回给用户的一次过程。一次会话过程结束后,服务器不会记载任何关于用户的信息。但是,往往用户在经过多次访问服务器后,希望服务器能够记载关于用户的信息,此时需要使用session对象将用户的信息保存下来,这种机制称为会话跟踪。
session对象常用的方法如下所示:
方法名称 | 功能说明 |
---|---|
long getCreateTime() | 获得会话产生的时间 |
String getId() | 得到会话的ID编号 |
long getLastAccessedTime() | 返回当前回话对象上次访问时间 |
long getMaxInactiveInterval() | 获得会话最大生存时间 |
void invalidate() | 撤销会话 |
boolean isNew() | 判断session是否为新的会话对象,所谓新的会话对象, 表示session已由服务器产生,但是客户端尚未使用 |
void setMaxInactiveInterval(int interval) | 设定会话最大不活动时间 |
Object getAttribute(String name) | 获得会话中名称为name指定的属性的值 |
void setAttribute(Stirng name,Object value) | 将value值以name为名称保存在会话中 |
绑定和获取会话中的参数
<%
//将数据保存在会话中,存放在服务器上
String username = "username";
int age = 30;
session.setAttribute("name", username);
session.setAttribute("age", age);
%>
<%
//获取在会话中绑定的参数,session对象的getAttribute方法的返回类型为Object,因此需要做强制类型转换
String username= (String)session.getAttribute("username");
Integer age = (Integer)session.getAttribute("age");
%>
移出会话参数
<%
//将数据保存在会话中,存放在服务器上
String username = "username";
int age = 30;
session.setAttribute("name", username);
session.setAttribute("age", age);
//移除会话参数
session.removeAttribute("name");
%>
销毁会话
每个会话对象都有一定的生存周期,超过这个周期,会话对象将自动终止,或者可以使用invalidate()方法来终止当前会话,并解开与它绑定的数据。