java中的session,当第一个java页面被装载时会被自动创建,完成会话期管理
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话
当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象
session对象是HttpSession类的实例
session对象常用方法如下:
long getCreationTime() //返回session的创建时间 public String getId() //返回session创建时的jsp引擎为它设置的唯一ID号 public Object setAttribute(String name, Object value) //使用指定名称将对象绑定到此会话 public Object get Attribute(String name) //返回此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回Null String[] getValueNames() //返回一个包含此session中所有可用属性的数组 int getMaxInactiveInterval() //返回两次请求间隔多长时间此session被取消(单位秒) void removeAttribute(String name) //清除指定名称的session void invalidate() //清除所有session
在Java中对session的基本使用,代码如下:
HttpServletRequest request; HttpSession session = request.getSession(); //创建session对象 session.setAttribute("url", "form1.cn"); //设置一个session对象属性 session.getAttribute("url") //读取一个指定的session属性
获取session所有被设置过的属性名称,代码如下:
HttpServletRequest request; HttpSession session = request.getSession(); //创建session对象 //设置三个session对象属性 session.setAttribute("url", "form1.cn"); session.setAttribute("ip", "127.0.0.1"); session.setAttribute("code", "200"); String[] names = session.getValueNames(); //获取session中所有可用属性的数组 for(int i = 0; i < names.length; i++){ System.out.print(names[i]+"=="); //将输出:url==ip==code System.out.println(); System.out.println(session.getAttribute(names[i])); //会输出所有设置的session属性的值 }
获取session的创建时并格式化时间输出,代码如下:
HttpServletRequest request; HttpSession session = request.getSession(); //创建session对象 long session_create_time session.getCreationTime(); //获取session的创建时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); //创建SimpleDateFormat对象 Date d = new Date(long); 创建Date对象,将时间戳传入 sdf.format(d); //将其结果输出可以得到格式化后的时间
设置和获取session的生命周期 (单位秒),代码如下:
HttpServletRequest request; HttpSession session = request.getSession(); //创建session对象 session.getMaxInactiveInterval(); //获取session的生命周期 session.setMaxInactiveInterval(60); //设置session的生命周期为 60
清除session,代码如下:
HttpServletRequest request; HttpSession session = request.getSession(); session.removeAttribute("url"); //清除指定名称的session session.invalidate() //清除所有session