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() |
返回会话期间的识别号 |
时间: 2024-10-08 04:11:16