jsp对象实例讲解(三) Session对象
三.Session对象
1.什么是Session:Session对象是一个jsp内置对象,它在第一个jsp页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。 当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的Id:当一个客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象,同时分配一个String类型的Id号,jsp引擎同时将这个Id号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
3.session对象常用方法:
i.public String getId():获取session对象编号。
ii.public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到session对象中,并为添加的对象指定一个索引关键字。
iii.public Object getAttribute(String key):获取session对象中含有关键字的对象。
iv.public Boolean isNew():判断是否是一个新的客户。
例如:session1.jsp
<%@ page c %>
<HTML>
<BODY bgcolor=cyan><FONT Size=5>
<BODY>
<%String s=session.getId();
%>
<P>您的session对象的ID是:
<BR>
<%=s%>
<BODY>
<HTML>
例如:session2.jsp
<%@ page c %>
<HTML>
<BODY>
<%! int number=0;
synchronized void countPeople()
{
number++;
}
%>
<%
if(session.isNew())
{
countPeople();
String str=String.valueOf(number);
session.setAttribute("count",str);
}
%>
<P>您是第<%=(String)session.getAttribute("count")%>个访问本站的人。
<BODY>
<HTML>
1.什么是Session:Session对象是一个jsp内置对象,它在第一个jsp页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。 当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的Id:当一个客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象,同时分配一个String类型的Id号,jsp引擎同时将这个Id号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
3.session对象常用方法:
i.public String getId():获取session对象编号。
ii.public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到session对象中,并为添加的对象指定一个索引关键字。
iii.public Object getAttribute(String key):获取session对象中含有关键字的对象。
iv.public Boolean isNew():判断是否是一个新的客户。
例如:session1.jsp
<%@ page c %>
<HTML>
<BODY bgcolor=cyan><FONT Size=5>
<BODY>
<%String s=session.getId();
%>
<P>您的session对象的ID是:
<BR>
<%=s%>
<BODY>
<HTML>
例如:session2.jsp
<%@ page c %>
<HTML>
<BODY>
<%! int number=0;
synchronized void countPeople()
{
number++;
}
%>
<%
if(session.isNew())
{
countPeople();
String str=String.valueOf(number);
session.setAttribute("count",str);
}
%>
<P>您是第<%=(String)session.getAttribute("count")%>个访问本站的人。
<BODY>
<HTML>
session对象:
- session对象主要用于保存用户的各种信息,知道它的生命周期(一般是900S)超时或者被人为释放为止
- 可以通过session对象来判断此用户是否是合法用户
- 在服务器上通过session来区分每一个上网用户
- session对象属于javax.servlet.http.HttpSession接口的实例化对象
- session属于HTTP协议范畴之内的对象,所以只有唯一的一个http包下有此接口,没有任何继承关系
- 用户只要一连接服务器则立刻分配一个session给用户
session的主要方法:
- 服务器上通过session来分别不同的用户-->sessionID:任何连接到服务器上的用户,服务器都会为之分配唯一一个不会重复的sessionID
- sessionID是由服务器同意管理的,人为不能控制
- 方法:session.getId()
- sessionID的长度为32位
- 判断是不是新的session
- Public boolean isNew(),判断当前的session是否是新建立的session
- session的属性设置
- 设置属性setAttribute()
- 取得属性getAttribute()
- 删除属性removeAttribute()
- 通过session能够对用户是否登陆做出验证
- ★用户注销:让用户的session失效
- 若用户的session失效,则在session所保留的全部操作也会消失
- 方法:Public Void invalidate()使session失效(需手工操作)
- 若session长时间不被使用,也会自动失效
- 得到session的创建时间
- 方法:Public long getCreationTime(),此方法返回一个long类型,通过Date类可以取得一个完整的时间
- 取得用户最后一次操作的时间
- 方法:Public long getLastAccessedTime()
- 用户在线时间=session最后一次操作时间-session创建时间
session与Cookie区别:
- session将信息保存在服务器上而Cookie保存在客户端上
- session比Cookie更安全,session比Cookie更占资源
- 开发原则:
- sessiom要尽量少使用--尽量少向session中保存信息
- session使用Cookie机制,若Cookie被禁用,则session也无法使用
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)