spring mvc 操作session工具类

spring mvc中,用户对象都是存到session中的,虽然可以通过直接传Httpsession 对象来使用session,但是每次操作都得传入session对象,比较麻烦。还有一种办法就是通过RequestContextHolder对象获取request,所以写了一个简单的工具类来获取session,操作用户:

public final class UserUtils {

    private static HttpSession getSession() {
        HttpSession session = null;
        try {
            session = getRequest().getSession();
        } catch (Exception e) {
        }
        return session;
    }

    public static HttpServletRequest getRequest() {
        ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        return attrs.getRequest();
    }

    /**
     * 从session中获取用户
     * 
     * @param session
     * @return user
     */
    public static User getUser() {
        return (User) getSession().getAttribute(SysConstant.USER);
    }

    public static void setUser(User user) {
        getSession().setAttribute(SysConstant.USER, user);
    }

    public static void removeUser() {
        HttpSession session = getSession();
        session.removeAttribute(SysConstant.USER);
        session.invalidate();
    }
}

你可能感兴趣的:(java,spring-boot)