jsp session对象

介绍

session对象指的是客户端与服务器的会话,从客户端第一次连到服务器时创建,关闭浏览器或超时时销毁。

类

javax.servlet.http.HttpSession

原理

https://malaoshi.top/show_1EF3sMbk2GQ1.html

生命周期

创建:第一次访问 web应用时,就会创建 session

销毁:关闭浏览器,或 session超时,或通过代码 销毁session

应用场景

登录

获取session

jsp:可以直接使用 session 对象

servlet:通过 request 对象获取,如下:

HttpSession session = req.getSession()

常用方法:

  • void setAttribute(key, value); 将 key/value 存入到 session 对象中
  • Object getAttribute(key); 根据key获取value
  • void removeAttribute(String name) 删除key/value
  • void invalidate() 取消SESSION,使SESSION不可用
  • void setMaxInactiveint erval() 设置两次请求间隔多长时间此SESSION被取消,单位:毫秒 ms
  • publicString getId() 返回SESSION的id号,每个id号都是不同的
  • long getCreationTime() 返回SESSION创建时间
  • long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间
  • int getMaxInactiveint erval() 返回两次请求间隔多长时间此SESSION被取消(ms)
  • boolean isNew() 判断 session 是否新创建的

设置session有效时间

https://malaoshi.top/show_1IXscCWXFmE.html

例子:登录

登录成功后,将用户信息放入到session中

String username=request.getParameter("username");
String password=request.getParameter("password");

/*
判断用户名、密码是否正确
 */
//登录成功,将用户信息放入到session中
session.setAttribute("username",username);

需要登录才能访问的网页

如:订单页面,创建 order.jsp,需要判断用户是否登录,在顶部增加下面代码:

String username=(String)session.getAttribute("username");
if(username==null || "".equals(username)){
    response.sendRedirect(request.getContextPath()+"/login.jsp");
}

退出登录

session.invalidate();
session=null;

原文出处:/show_1IXrg8iBA5r.html