三.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位
  1. 判断是不是新的session
  • Public boolean isNew(),判断当前的session是否是新建立的session
  1. session的属性设置
  • 设置属性setAttribute()
  • 取得属性getAttribute()
  • 删除属性removeAttribute()
  • 通过session能够对用户是否登陆做出验证
  1. 用户注销:让用户的session失效
  • 若用户的session失效,则在session所保留的全部操作也会消失
  • 方法:Public Void invalidate()使session失效(需手工操作)
  • 若session长时间不被使用,也会自动失效
  1. 得到session的创建时间
  • 方法:Public long getCreationTime(),此方法返回一个long类型,通过Date类可以取得一个完整的时间
  1. 取得用户最后一次操作的时间
  • 方法:Public long getLastAccessedTime()
  • 用户在线时间=session最后一次操作时间-session创建时间

session与Cookie区别:

  • session将信息保存在服务器上而Cookie保存在客户端上
  • session比Cookie更安全,session比Cookie更占资源
  • 开发原则:
  • sessiom要尽量少使用--尽量少向session中保存信息
  • session使用Cookie机制,若Cookie被禁用,则session也无法使用