HTTP是一种无状态协议。也就是说,当一个客户向服务器发出请求,服务器接受请求,并返回后,该连接就被关闭了,此时服务器端不保留连接的有关信息,因此当下一次连接时,服务器已没有了以前的连接信息,此时将不能判断这一次连接和以前的连接是否是属于同意客户。为了弥补这一缺点,JSP提供了一个session对象,这样服务器和客户端之间的连接就会一直保持下去,但是在一定时间内(系统默认30min内),如果客户端不向服务器,发出应答请求,session对象就会,自动消失。不过在编写程序时,可以修改这个时间限定值,使session对象在特定时间内保存信息。保存的信息可以是与客户端有关的,也可以是一般信息可以根据需要设定相应的内容。
本项目用HttpSession存储从数据存取的数据
首先 request.getSession(); //获取session
session有2存储个方法
setAttribute(String name ,obj value);
value为存储的对象,name为给这个对象起一个的名
换句话说就是将value对象以name名称绑定到会话
getAttribute(String name);
取得name的属性值,如果属性不存在则返回null,如果属性存在返回value对象
实例:
1、创建一个sessionData类
public class sessionData {
<span style="white-space:pre"> </span>private int roleId;
<span style="white-space:pre"> </span>public int getRoleId() {
<span style="white-space:pre"> </span>return roleId;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public void setRoleId(int roleId) {
<span style="white-space:pre"> </span>this.roleId = roleId;
<span style="white-space:pre"> </span>}
}
2、JSP页面
<%
<span style="white-space:pre"> </span>session = request.getSession();
<span style="white-space:pre"> </span>sessionData lll = new sessionData();
<span style="white-space:pre"> </span>lll.setRoleId(22222);
<span style="white-space:pre"> </span>session.setAttribute("aaaa", lll);<span style="white-space:pre"> </span>//将lll对象用“aaaa”名存储在内存中
%>
<%
<span style="white-space:pre"> </span>sessionData qqq = new sessionData();
<span style="white-space:pre"> </span>qqq=(sessionData)session.getAttribute("aaaa");
%>
<%=qqq.getRoleId()%>
输出结果:22222
session其他方法:
方法 | 介绍 |
public void setAttribute(String name,Object value) | 将value对象以name名称绑定到会话 |
public object getAttribute(String name) | 取得name的属性值,如果属性不存在则返回null |
public void removeAttribute(String name) | 从会话中删除name属性,如果不存在不会执行,也不会抛处错误. |
public Enumeration getAttributeNames() | 返回和会话有关的枚举值 |
public void invalidate() | 使会话失效,同时删除属性对象 |
public Boolean isNew() | 用于检测当前客户是否为新的会话 |
public long getCreationTime() | 返回会话创建时间 |
public long getLastAccessedTime() | 返回在会话时间内web容器接收到客户最后发出的请求的时间 |
public int getMaxInactiveInterval() | 返回在会话期间内客户请求的最长时间.秒 |
public void setMasInactiveInterval(int seconds) | 允许客户客户请求的最长时间 |
ServletContext getServletContext() | 返回当前会话的上下文环境,ServletContext对象可以使Servlet与web容器进行通信 |
public String getId() | 返回会话期间的识别号 |