Servlet Session
// 文件路径 D:\ApacheServer\web_java\HelloWorld\src\com\test\TestServletSession.java package com.test; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; public class TestServletSession { public void testfun(HttpServletRequest request) { // 获取当前请求的 session 会话,需要在向客户端发送任何文档内容之前调用 request.getSession()。 // getSession() 等同于 getSession(true) 若存在会话,则返回该会话,否则新建一个会话。getSession(false) 则是如存在会话,则返回该会话,否则返回NULL HttpSession session = request.getSession(); //下面总结了 HttpSession 对象中可用的几个重要的方法: // 指定键名绑定一个对象到该 session 会话,绑定的对象可以是任意类型的对象包括字符串 Object anyObject = new Object(); session.setAttribute("testKey", anyObject); // 获取 session 中指定键名的数据值,如果没有指定该键名对则返回 null,之前赋的键值无论何类型,getAttribute 方法返回的都是 Object 类型,使用时需要强制类型 Object val = session.getAttribute("testKey"); // 从该 session 会话移除指键名称及对应对象。 session.removeAttribute("testKey"); // 以枚举方式获取 session 中所有设置绑定的键名 Enumeration sessionEnumeration = session.getAttributeNames(); // 获取 session id String sessionId = session.getId(); // 返回该 session 创建的时间戳,单位毫秒,创建完不一定已经回传给客户端。 long sessionBegin = session.getCreationTime(); // 判断该对话是否是第一次建立,即客户端还未保存 session id,或者客户选择不参入该 session 会话,则该方法返回 true boolean isNew = session.isNew(); // 返回该 session 客户端最后一次请求到服务器的时间戳,单位毫秒 long sessionEnd = session.getLastAccessedTime(); // 设定 session 在用户请求间隔多少秒内不失效 session.setMaxInactiveInterval(360); // 返回 Servlet 容器 session 在用户请求间隔多少秒内不失效 int interval = session.getMaxInactiveInterval(); // 使该 session 会话无效,并解除绑定到它上面的任何对象。 //session.invalidate(); // 输出相关信息 // session 创建时间 Date createTime = new Date(sessionBegin); // 该网页的最后一次访问时间 Date lastAccessTime = new Date(sessionEnd); //设置日期输出的格式 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 设置键值 String testStr = ""; int testInt = 0; if(session.getAttribute("key_str") == null) { testStr = "this is test str"; session.setAttribute("key_str", testStr); }else { testStr = (String)session.getAttribute("key_str"); } if(session.getAttribute("key_int") == null) { testInt = 0; session.setAttribute("key_int", testInt); }else { testInt = (int)session.getAttribute("key_int") + 1; session.setAttribute("key_int", testInt); } // 控制台输出 System.out.println("用户最后一次请求时间为 : " + dateFormat.format(lastAccessTime)); System.out.println("session key_str 键对应值为 : " + testStr); System.out.println("session testInt 键对应值为 : " + testInt); } }