zoukankan      html  css  js  c++  java
  • SessionUtil


    import cn.edu.zzuli.bean.Shop;
    import cn.edu.zzuli.bean.User;
    import org.apache.catalina.servlet4preview.http.HttpServletRequest;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;

    import javax.servlet.http.HttpSession;

    /**
    * @ClassName SessionUtil
    * @Description 对于Session中的操作,封装起来,因为键值对中的键是String类型,不便于控制,在这里可以隐藏细节。
    * @Author 过道
    * @Date 2018/12/24 21:00
    * @Version 1.0
    */
    public class SessionUtil {
    // 获取一个session对象
    private static HttpSession session = getSession();

    /**
    * user在session中的名字,也就是键值对的键。
    */
    private static final String USER_NAME_IN_SESSION = "user";
    /**
    * shop在session中的名字,也就是键值对的键。
    */
    private static final String SHOP_NAME_IN_SESSION = "shop";

    /**
    * 获取session 的方法
    *
    * @return HttpSession
    */
    public static HttpSession getSession() {
    HttpSession session = null;
    try {
    session = getRequest().getSession();
    } catch (Exception e) {
    }
    return session;
    }

    /**
    * 获取一个request对象的方法
    *
    * @return HttpServletRequest
    */
    public static HttpServletRequest getRequest() {
    ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    return (HttpServletRequest) attrs.getRequest();
    }

    /**
    * 从session中获取到当前用户
    *
    * @return
    */
    public static User getUserFromSession() {
    return (User) session.getAttribute(USER_NAME_IN_SESSION);
    }

    /**
    * 更新Session中的user
    *
    * @return
    */
    public static User updateUserInSession(User user) {
    // 直接放入user,顶替掉原来session中的user
    return putUserIntoSession(user);
    }

    /**
    * 将user放入Session对象中
    *
    * @param user 用户
    * @return
    */
    public static User putUserIntoSession(User user) {
    session.setAttribute(USER_NAME_IN_SESSION, user);
    return getUserFromSession();
    }


    /**
    * 从session中移除User对象
    *
    * @return
    */
    public static User removeUserFromSession() {
    User user = getUserFromSession();
    session.removeAttribute(USER_NAME_IN_SESSION);
    // 移出商店,如果有的话
    if (getShopFromSession() != null) {
    removeShopFromSession();
    }
    return user;
    }

    /**
    * 将shop放入Session对象
    *
    * @param shop 商店
    */
    public static void putShopIntoSession(Shop shop) {
    session.setAttribute(SHOP_NAME_IN_SESSION, shop);
    }

    /**
    * 从session中移除User对象
    *
    * @return
    */
    public static Shop removeShopFromSession() {
    Shop shop = getShopFromSession();
    session.removeAttribute(SHOP_NAME_IN_SESSION);
    return shop;
    }

    /**
    * 从Session中获取到Shop
    *
    * @return 将Session中的Shop返回
    */
    private static Shop getShopFromSession() {
    return (Shop) session.getAttribute(SHOP_NAME_IN_SESSION);
    }

    }

  • 相关阅读:
    开课吧-孤尽公开课视频内容整理笔记
    业务系统数据库设计经验总结(七)-强制使用选定索引
    业务系统数据库设计经验总结(六)-MySQL中ORDER BY LIMIT分页数据性能问题
    业务系统数据库设计经验总结(五)-MySQL中ORDER BY LIMIT分页数据重复问题
    mongoTemplate聚合统计字段类型为字符串的数据,根据时间日期月份进行统计,日期也为字符串
    预览在线的pdf
    react页面缓存 使用本地存储
    react页面缓存插件 react-router-cache-router
    README.md的基本语法使用
    eclipse tomcat的一些错误
  • 原文地址:https://www.cnblogs.com/ailiying/p/12522317.html
Copyright © 2011-2022 走看看