zoukankan      html  css  js  c++  java
  • 微信小程序 Session 失效

    微信小程序 Session 失效

    微信小程序,前端请求后端,中间多了个微信服务器,所以请求的流程就是 页面--微信服务器--目标服务器 这就导致了一个问题 session 每次请求都是一个新的会话

    解决办法 :

      项目搭建使用的是 maven + spring boot + spring data jpa 

    @WebListener
    public class MySessionListener implements HttpSessionListener {
    
        @Override
        public void sessionCreated(HttpSessionEvent httpSessionEvent) {
            MySessionContext.addSession(httpSessionEvent.getSession());
        }
    
        @Override
        public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
            HttpSession session = httpSessionEvent.getSession();
            MySessionContext.delSession(session);
        }
    }
    public class MySessionContext {
        
        private static HashMap<String,Object> sessionIdMap = new HashMap<String,Object>();
    
        public static synchronized void addSession(HttpSession session) {
            if (session != null) {
                sessionIdMap.put(session.getId(), session);
            }
        }
    
        public static synchronized void delSession(HttpSession session) {
            if (session != null) {
                sessionIdMap.remove(session.getId());
            }
        }
    
        public static synchronized HttpSession getSession(String session_id) {
            if (sessionIdMap.containsKey(session_id)){
                return (HttpSession) sessionIdMap.get(session_id);
            }else{
                return null;
            }
        }
    }

    在需要用到session的地方将session保存

                        //存sessionId
                        final String sessionId = request.getSession().getId();
                        //存session
                        MySessionContext.addSession(request.getSession());

    将sessionId返回到前台 在之后交互的时候 将sessionId发到后台 

                    //根据sessionId获取session
                    HttpSession session = MySessionContext.getSession(sessionId);

    这就可以获取到之前的session 

  • 相关阅读:
    【软件工程】第0次个人作业
    【面向对象设计与构造】第四次博客作业
    【面向对象设计与构造】第三次博客作业
    【面向对象设计与构造】第二次博客作业
    【面向对象设计与构造】第一次博客作业
    软件工程提问回顾与个人总结
    软件工程结对项目博客作业
    软件工程第一次阅读作业
    软件工程第0次个人作业
    面向对象设计与构造第四次总结作业
  • 原文地址:https://www.cnblogs.com/yi1036943655/p/9455460.html
Copyright © 2011-2022 走看看