总结记录 Session 工具类
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Objects;
public class SessionUtil {
// 默认超时时间为十分钟
private static final int MAX_INACTIVE_INTERVAL = 60 * 10;
/**
* 获取 request
* @return HttpServletRequest
*/
public static HttpServletRequest getRequest(){
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return Objects.requireNonNull(requestAttributes).getRequest();
}
/**
* 获取 Session
* @return HttpSession
*/
public static HttpSession getSession(){
return getSession(MAX_INACTIVE_INTERVAL);
}
/**
* 获取 Session 并指定超时时间
* @param seconds 超时时间,单位:秒
* @return HttpSession
*/
public static HttpSession getSession(int seconds){
HttpSession session = getRequest().getSession();
session.setMaxInactiveInterval(seconds);
return session;
}
/**
* 获取 session 中的 Attribute
* @param name key name
* @return Object
*/
public static Object getSessionAttribute(String name){
return getRequest().getSession().getAttribute(name);
}
/**
* 设置session的Attribute
* @param name key name
* @param value value
*/
public static void setSessionAttribute(String name, Object value){
getRequest().getSession().setAttribute(name, value);
}
/**
* 删除session中的Attribute
* @param name key name
*/
public static void removeSessionAttribute(String name) {
getRequest().getSession().removeAttribute(name);
}
}
技 术 无 他, 唯 有 熟 尔。
知 其 然, 也 知 其 所 以 然。
踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。