使用servlet会话API中定义的类和接口来创建和管理用户会话,servlet会话API提供的用于创建和管理用户会话的各种接口有javax.servlet.http.HTTPsession javax.servlet.http.HTTPsessionListener javax.servlet.http.HTTPsessionBindingListener
各种方法:(比较常用的方法及其简要描述)
方法 | 描述 |
---|---|
public void setAttribute(String name,Object value) | 将属性绑定到具有为一名称的会话对象上 |
public void getAttribute(String name,Object value) | 从会话对象中检索绑定到方法中指定的属性名称的对象 |
public void invalidate() | 使对话无效,杀死Session |
public String getId() | 获取会话id |
public boolean isNew() | 返回该Session是否是新创建的 |
实例:
创建一个servlet,给对象绑定一个属性,并且给定输出(代码使用doget方法,import部分的代码省略)
package Session会话;
@WebServlet("/Session")
public class Session extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.创建一个session对象
HttpSession session =request.getSession();
//2给对象绑定一个属性
session.setAttribute("name", "yueyueniao");
//获取该属性
String name1 = (String)session.getAttribute("name");
System.out.println("name:"+name1);
//获取该id
String id= session.getId();
System.out.println("session id:"+id);
}
}
当运行了上述代码后,我们使用的Session会话机制,其绑定的值使用的是cookie保存在浏览器当中,我们再定义一个servlet,不给其绑定值,而直接获取值,看是否能够获取
package Session会话;
@WebServlet("/othersession")
public class othersession extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session =request.getSession();
String name1 = (String)session.getAttribute("name");
System.out.println("other.name:"+name1);
String id= session.getId();
System.out.println("other id:"+id);
}
}