分享

Session对象

 白月光没有悲伤 2012-09-05
Session对象

 


大家都知道HTTP是无状态的通信协议,Web服务器为了区别不同的用户和跟踪用户的操作状态,在Java Servlet API中使用Session机制来实现。存放于服务器端的Session对象中保存每一个用户的信息,而Session的ID却保存在客户端的Cookie中,这样一来,客户端和服务器端在每次请求/相应过程中就能确保不会错位了。
        每一个客户端都会得到一个唯一的SessionID,在服务器端有一个与之对应的Session对象。Session对象有其特定的声明周期,它开始于客户端的第一次访问,结束于以下几种情况:
        (1)客户端关闭浏览器
        (2)Session过期
        (3)服务器端调用了Session对象的invalidate()方法
 
 
session对象的常用方法
long getCreationTime() 返回该Session被创建时间
String getId() 返回该Session的ID
long getLastAccessedTime() 返回该Session用户最后一次创建的时间
long getMaxInactiveInterval() 返回该Session可以处于不活动状态的最大时间间隔
void invalidate() 使该Session失效,服务器端将释放该Session对象占用的资源
boolean isNew() 判断是否为新建的Session
void setMaxInactiveInterval(int arg0) 设置该Session可以处于不活动状态的最大时间间隔
void setAttribute(String arg0,Object arg1) 设定arg0所指属性的值为arg1
Object getAttribute(String arg0) 取得arg0所指属性的值,如果不存在则返回null
void removeAttributeString atg0 移除arg0所指属性
 
 
用法举例:
 
sessionDemo.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head></head>
  <body>
 <h2>Session对象实例</h2><hr/>
 <%
 String[] users ={"admin","liubin","dywdyw"};
 String user=null;
 String logined =null;
 Date createTime,lastAccessTime;
 if(request.getParameter("user")!=null){
 user =request.getParameter("user");
 }else{
 out.println("对不起,请在请求参数中附加用户账号!");
 return ;
 }
 for(int i=0;i<users.length;i++){
 if(users[i].equalsIgnoreCase(user)){
 session.setAttribute("logined","yes"); 
 }
 }
 if(session.getAttribute("logined")!=null){
 logined=session.getAttribute("logined").toString();
 if(logined.equals("yes")){
 createTime =new Date(session.getCreationTime());
 lastAccessTime =new Date(session.getLastAccessedTime());
 out.println("恭喜你成功登陆!<br/>");
 out.println("你的SessionID为:"+session.getId()+"<br/>");
 out.println("创建时间为:"+createTime+"<br/>");
 out.println("最后的访问时间为:"+lastAccessTime+"<br/>");
 out.println("最大不活动时间为:"+session.getMaxInactiveInterval()+"秒<br/>");
 }else{
  out.println("对不起,你输入的账户有误!");
 }
 }else{
 out.println("对不起,你输入的账户有误!");
 } 
  %>
  </body>
</html>
 
 
结果:
 
 
1.没有带请求参数 
 
 
 2.带请求参数
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多