form1.cn
Make a little progress every day

Java/Jsp中session的基本使用已介绍

26th of July 2017 Java Java 2602

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