校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > tomcat共享多個web應用會話的實現方法

tomcat共享多個web應用會話的實現方法

熱門標簽:外呼系統使用方法 電話機器人需要使用網絡嗎 給地圖標注得傭金 海外圖書館地圖標注點 南通通訊外呼系統產品介紹 潤滑油銷售電銷機器人 如何看懂地圖標注點 自繪地圖標注數據 電銷機器人免培訓

tomcat共享多個web應用會話的實現方法

問題

今天有位朋友問了個問題,大致是:tomcat下兩個Java web,一個是商城,一個是直播,從商城登錄后,再跳轉到直播,發現處于非登錄狀態。

解決思路

  1. 將session抽出來成一個session服務,統一通過該服務操作session。
  2. tomcat內部用會話管理器獲取會話時遍歷所有context內的會話。

方案1

重寫獲取session方法即可。

方案2

找了源碼發現已經支持類似遍歷所有context內的會話的形式,首先獲取session時,如果cressContext屬性為true,則會在獲取不到時嘗試遍歷所有context是否存在該sessionid,如果存在則在本context根據sessionid創建自己的session對象。

 public HttpSession getSession(boolean create) {

    if (crossContext) {

      // There cannot be a session if no context has been assigned yet
      if (context == null)
        return (null);

      // Return the current session if it exists and is valid
      if (session != null  session.isValid()) {
        return (session.getSession());
      }

      HttpSession other = super.getSession(false);
      if (create  (other == null)) {
        // First create a session in the first context: the problem is
        // that the top level request is the only one which can 
        // create the cookie safely
        other = super.getSession(true);
      }
      if (other != null) {
        Session localSession = null;
        try {
          localSession =
            context.getManager().findSession(other.getId());
          if (localSession != null  !localSession.isValid()) {
            localSession = null;
          }
        } catch (IOException e) {
          // Ignore
        }
        if (localSession == null  create) {
          localSession = 
            context.getManager().createSession(other.getId());
        }
        if (localSession != null) {
          localSession.access();
          session = localSession;
          return session.getSession();
        }
      }
      return null;

    } else {
      return super.getSession(create);
    }

  }

context(web應用)獲取跨應用session時通過類似下面操作獲取:

request.getSession().getServletContext().getContext("/app2").getAttribute("att2"); 

這是因為request會根據cookies的sessionid獲取到session對象,這時不會報找不到,因為前面已經根據其他sessionid創建了一個session對象,然后getContext操作會獲取對應url的context,接著進行會話操作。

public ServletContext getContext(String uri) {

    // Validate the format of the specified argument
    if (uri == null || !uri.startsWith("/")) {
      return null;
    }

    Context child = null;
    try {
      // Look for an exact match
      Container host = context.getParent();
      child = (Context) host.findChild(uri);

      // Non-running contexts should be ignored.
      if (child != null  !child.getState().isAvailable()) {
        child = null;
      }

      // Remove any version information and use the mapper
      if (child == null) {
        int i = uri.indexOf("##");
        if (i > -1) {
          uri = uri.substring(0, i);
        }
        // Note: This could be more efficient with a dedicated Mapper
        //    method but such an implementation would require some
        //    refactoring of the Mapper to avoid copy/paste of
        //    existing code.
        MessageBytes hostMB = MessageBytes.newInstance();
        hostMB.setString(host.getName());

        MessageBytes pathMB = MessageBytes.newInstance();
        pathMB.setString(uri);

        MappingData mappingData = new MappingData();
        ((Engine) host.getParent()).getService().findConnectors()[0].getMapper().map(
            hostMB, pathMB, null, mappingData);
        child = (Context) mappingData.context;
      }
    } catch (Throwable t) {
      ExceptionUtils.handleThrowable(t);
      return null;
    }

    if (child == null) {
      return null;
    }

    if (context.getCrossContext()) {
      // If crossContext is enabled, can always return the context
      return child.getServletContext();
    } else if (child == context) {
      // Can still return the current context
      return context.getServletContext();
    } else {
      // Nothing to return
      return null;
    }
  }

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家都對本站的支持!

您可能感興趣的文章:
  • Tomcat實現session共享(session 會話復制)
  • 修改Tomcat服務器默認端口號的實現方法
  • Centos7.3下Tomcat8的安裝配置教程
  • maven自動部署到遠程tomcat服務器的方法
  • Tomcat中的startup.bat原理詳細解析
  • Tomcat中的catalina.bat原理詳細解析

標簽:樂山 黃石 貸款邀約 大連 銅川 內江 南京 廣州

巨人網絡通訊聲明:本文標題《tomcat共享多個web應用會話的實現方法》,本文關鍵詞  tomcat,共享,多個,web,應用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《tomcat共享多個web應用會話的實現方法》相關的同類信息!
  • 本頁收集關于tomcat共享多個web應用會話的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲欧洲国产日本综合| 91精品国产一区二区三区蜜臀| 日韩一级成人av| 日本韩国一区二区| 99热在这里有精品免费| 久久97超碰色| 精品欧美黑人一区二区三区| 欧美日韩成人一区| 国产一区二区三区精品视频| 亚洲一区二区三区爽爽爽爽爽| 国产日产精品一区| 久久久久国产精品麻豆ai换脸 | 成人禁用看黄a在线| 国产精品一二三区在线| 国产高清在线精品| 成人午夜在线播放| 99re这里只有精品6| 色综合久久久久| 精品视频在线免费观看| 在线电影院国产精品| 91.com视频| 欧美成va人片在线观看| 国产午夜精品在线观看| 欧美国产欧美综合| 一区二区三区在线视频观看 | 欧美久久久一区| 日韩片之四级片| 久久久www成人免费无遮挡大片| 欧美极品美女视频| 亚洲免费观看高清完整版在线观看熊 | 午夜国产精品影院在线观看| 亚洲a一区二区| 久久er99精品| jlzzjlzz国产精品久久| 欧美日韩精品系列| 欧美日韩国产精品成人| 日韩一级片网址| 久久av资源站| 国产一区二区女| 大胆欧美人体老妇| 欧美主播一区二区三区美女| 欧美视频在线播放| 欧美精品一区二区三区在线播放| 欧美精品一二三| 久久久久久久久久久久电影 | 国产精品亲子伦对白| 69堂国产成人免费视频| 91在线丨porny丨国产| 91在线精品一区二区| 欧美色精品在线视频| 欧美mv日韩mv| 一区二区三区国产精华| 国产真实乱子伦精品视频| 色综合一个色综合| 日韩一区二区高清| 亚洲视频 欧洲视频| 久久精品国产久精国产| 色婷婷av一区二区三区大白胸| 日韩一级片网址| 亚洲综合色丁香婷婷六月图片| 日本视频免费一区| 色天天综合久久久久综合片| 国产精品久久久久久久久快鸭 | 色欧美片视频在线观看在线视频| 欧美日韩久久久| 久久网站热最新地址| 成熟亚洲日本毛茸茸凸凹| 美国三级日本三级久久99| 色综合久久久久综合99| 精品三级在线观看| 午夜国产不卡在线观看视频| 成人avav影音| 久久久久国产精品免费免费搜索| 三级欧美在线一区| 欧美影视一区在线| 亚洲同性gay激情无套| 国产精品99久久久久久似苏梦涵| 欧美猛男gaygay网站| 国产精品一区二区无线| 国产日韩精品一区| 亚洲综合男人的天堂| 丰满少妇在线播放bd日韩电影| 欧美精品一级二级三级| 夜夜爽夜夜爽精品视频| 成人av网站在线| 中文字幕免费在线观看视频一区| 久久国产欧美日韩精品| 日韩欧美区一区二| 日本亚洲三级在线| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲高清在线精品| 91成人国产精品| 亚洲色图制服诱惑| 日本大香伊一区二区三区| 精品国产伦一区二区三区观看体验| 欧美日韩中字一区| 综合av第一页| 9色porny自拍视频一区二区| 国产精品视频第一区| 成人免费视频网站在线观看| 国产精品久久久久影院亚瑟| aaa亚洲精品| 亚洲综合一区在线| 欧美酷刑日本凌虐凌虐| 麻豆精品新av中文字幕| 久久久久久日产精品| 成人妖精视频yjsp地址| 婷婷丁香激情综合| av一区二区三区黑人| 亚洲蜜臀av乱码久久精品| 在线一区二区三区做爰视频网站| 亚洲va欧美va人人爽午夜| 日韩一区二区精品| 成人午夜视频在线| 亚洲午夜久久久久久久久久久| 在线不卡一区二区| 色综合久久久网| 免费在线看一区| 日本午夜精品视频在线观看| 亚洲成a人在线观看| 日本道精品一区二区三区| 国产精品国产三级国产a| 99re热视频这里只精品| 婷婷综合另类小说色区| 久久亚洲一区二区三区四区| 99re这里只有精品6| 老色鬼精品视频在线观看播放| 久久亚洲欧美国产精品乐播 | 性做久久久久久免费观看| 欧美一区二区精品在线| 成人综合在线视频| 水野朝阳av一区二区三区| 久久日韩粉嫩一区二区三区 | 欧美中文字幕久久| 国产一区二区调教| 婷婷开心激情综合| 成人欧美一区二区三区1314| 日韩美女在线视频| 91福利国产成人精品照片| 国产精品888| 美国欧美日韩国产在线播放| 亚洲精品成a人| 国产精品一品二品| 国产成人精品三级| 国产精品久久久久毛片软件| 国产成人激情av| 精品一区二区三区欧美| 欧美美女直播网站| 亚洲午夜三级在线| 欧美主播一区二区三区| 粉嫩av一区二区三区在线播放| 日韩av在线发布| 看国产成人h片视频| 国产成人在线影院| 日韩精品电影在线| 国产亚洲成年网址在线观看| www久久精品| 日韩免费电影网站| 91蜜桃在线免费视频| 色婷婷av一区二区| 欧美一区二区三级| 99久久精品情趣| 亚洲免费观看在线视频| 欧美男男青年gay1069videost | 成人免费毛片aaaaa**| 亚洲一区国产视频| 亚洲国产精品精华液2区45| 精品美女被调教视频大全网站| 在线播放一区二区三区| 欧美精品1区2区3区| 精品视频免费在线| 欧美日韩黄色影视| 这里只有精品视频在线观看| 在线播放欧美女士性生活| 亚洲第一会所有码转帖| 欧美一区二区三区在线电影| 欧美性xxxxxx少妇| 欧美日韩国产大片| 88在线观看91蜜桃国自产| 91精品国产丝袜白色高跟鞋| 欧美一级片免费看| 337p粉嫩大胆噜噜噜噜噜91av | 国模冰冰炮一区二区| 日韩精品欧美精品| 精品无码三级在线观看视频| 国产精品77777| 色婷婷综合久久久中文一区二区| 91官网在线免费观看| 在线成人免费观看| 久久女同精品一区二区| 国产精品久久网站| 亚洲一区二区免费视频| 日本视频一区二区| 成人免费视频免费观看| 精品视频资源站| 国产电影一区二区三区| 一本久道久久综合中文字幕| 欧美一区二区三区电影| 国产午夜精品福利| 亚洲一区日韩精品中文字幕|