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);
    }

    }

  • 相关阅读:
    递归和迭代
    The Rose
    读周国平作品有感
    matlab最小二乘法数据拟合函数详解
    读周国平作品有感
    three.js之创建一条直线
    three.js之创建一个几何体
    Go语言标准库之strconv
    Go语言基础之网络编程
    Go语言基础之并发
  • 原文地址:https://www.cnblogs.com/ailiying/p/12522317.html
Copyright © 2011-2022 走看看