• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
thankgoodness
博客园    首页    新随笔    联系   管理    订阅  订阅

jsp对象实例讲解(三) Session对象

三.Session对象
  1.什么是Session:Session对象是一个jsp内置对象,它在第一个jsp页面被装载时自动创建,完成会话期管理
。
  从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。飞飞Asp技.术乐园当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
  2.session对象的Id:当一个客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象,同时分配一个String类型的Id号,jsp引擎同时将这个Id号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。飞飞As~p技术乐园
  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对象中含有关键字的对象。飞@飞Asp技术乐园
  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的主要方法:

  1. 服务器上通过session来分别不同的用户-->sessionID:任何连接到服务器上的用户,服务器都会为之分配唯一一个不会重复的sessionID
    • sessionID是由服务器同意管理的,人为不能控制
    • 方法:session.getId()
    • sessionID的长度为32位
  2. 判断是不是新的session
    • Public boolean isNew(),判断当前的session是否是新建立的session
  3. session的属性设置
    • 设置属性setAttribute()
    • 取得属性getAttribute()
    • 删除属性removeAttribute()
    • 通过session能够对用户是否登陆做出验证
  4. ★用户注销:让用户的session失效
    • 若用户的session失效,则在session所保留的全部操作也会消失
    • 方法:Public Void invalidate()使session失效(需手工操作)
    • 若session长时间不被使用,也会自动失效
  5. 得到session的创建时间
    • 方法:Public long getCreationTime(),此方法返回一个long类型,通过Date类可以取得一个完整的时间
  6. 取得用户最后一次操作的时间
    • 方法:Public long getLastAccessedTime()
    • 用户在线时间=session最后一次操作时间-session创建时间

session与Cookie区别:

  • session将信息保存在服务器上而Cookie保存在客户端上
  • session比Cookie更安全,session比Cookie更占资源
  • 开发原则:
    • sessiom要尽量少使用--尽量少向session中保存信息
    • session使用Cookie机制,若Cookie被禁用,则session也无法使用
posted @ 2008-06-05 15:21  宇晨  阅读(927)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3