亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

實例演示tomcat共享多個web應用會話的方法

2024-09-05 00:18:16
字體:
來源:轉載
供稿:網友

隨著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共享多個web應用會話的方法今天錯新技術頻道小編就為大家介紹到這里了,看完之后,是不是受益匪淺呢?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲已满18点击进入在线看片| 成人www视频在线观看| 国产91色在线免费| 岛国av一区二区三区| 欧美成人sm免费视频| 亚洲精品不卡在线| 日韩在线观看电影| 成人精品一区二区三区电影黑人| 欧美国产高跟鞋裸体秀xxxhd| 欧美性猛交xxxx偷拍洗澡| 国产精自产拍久久久久久蜜| 激情久久av一区av二区av三区| 久久99热这里只有精品国产| 久久精品久久久久久| 精品国偷自产在线| 少妇av一区二区三区| 国产精品一区二区三区久久| 久久天堂av综合合色| 久久久久久九九九| 国产成人涩涩涩视频在线观看| 日韩中文字幕不卡视频| 国产日韩av在线播放| 国产91久久婷婷一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产裸体写真av一区二区| 国产精品久久久久7777婷婷| 亚洲第一网中文字幕| 狠狠躁夜夜躁人人爽超碰91| 最近2019中文字幕一页二页| 国产精品揄拍500视频| 91av视频在线| 国产精品视频不卡| 日韩hd视频在线观看| 久久久久久999| 亚州av一区二区| 日韩的一区二区| 最近中文字幕2019免费| 国产精品69精品一区二区三区| 成人亚洲综合色就1024| 日韩欧美黄色动漫| 欧美午夜精品久久久久久浪潮| 国产精品久久久久久久久久ktv| 亚洲精品影视在线观看| 国产欧美日韩亚洲精品| 中文字幕日韩电影| 国产成人一区二区三区小说| 中文字幕9999| 亚洲激情视频在线观看| 精品久久久久久| 久久免费高清视频| 久久91精品国产91久久久| 亚洲国产精品人人爽夜夜爽| 亚洲精品自在久久| 欧美大片免费观看| 国产精品视频在线播放| 欧美日韩电影在线观看| 久久久久久久久久国产| 久久久久久九九九| 国产精品午夜国产小视频| 国产精品大片wwwwww| 日韩欧美在线观看视频| 国产成人综合亚洲| 久久免费视频网| 亚洲人成电影在线观看天堂色| 欧美日韩成人在线观看| 欧美日韩精品在线| 亚洲欧美日韩天堂一区二区| 中文字幕亚洲第一| 欧美性xxxxhd| 国产精品igao视频| 亚洲第一国产精品| 亚洲人午夜精品| 国产欧美一区二区三区四区| 亚洲国产毛片完整版| 伦伦影院午夜日韩欧美限制| 久久综合国产精品台湾中文娱乐网| 欧美在线一级va免费观看| 国产精品激情av电影在线观看| 欧美一级淫片丝袜脚交| 国产人妖伪娘一区91| 欧美中文字幕第一页| 欧美猛交ⅹxxx乱大交视频| 91亚洲精品在线观看| 国产日韩欧美日韩| 91成人天堂久久成人| 亚洲国模精品一区| 一级做a爰片久久毛片美女图片| 91久久国产婷婷一区二区| 国产精品美乳在线观看| 日韩精品日韩在线观看| 欧美成人亚洲成人日韩成人| 色偷偷91综合久久噜噜| 久久久爽爽爽美女图片| 欧美性猛交xxxx富婆| 午夜免费在线观看精品视频| 日本一欧美一欧美一亚洲视频| 欧美乱大交xxxxx另类电影| 日韩欧美大尺度| 欧美一级bbbbb性bbbb喷潮片| 中文字幕欧美精品日韩中文字幕| 成人欧美一区二区三区在线湿哒哒| 蜜臀久久99精品久久久久久宅男| 亚洲综合第一页| 68精品国产免费久久久久久婷婷| 国产精品日韩av| 亚洲人线精品午夜| 国产成人精品亚洲精品| 欧美在线欧美在线| 日韩免费黄色av| 国产精品久久久久久亚洲影视| 亚洲成人激情在线| 国产激情综合五月久久| 久久久久久久久久久av| 久久久久久久国产精品| 亚洲欧洲在线播放| 国产精品久久久久久av福利| 国产精品无av码在线观看| 欧美人与性动交| 日韩一区二区三区在线播放| 亚洲人成77777在线观看网| 欧美性猛xxx| 欧美日韩激情美女| 亚洲视频999| 久久影院资源网| 亚洲一区美女视频在线观看免费| 黑人巨大精品欧美一区二区免费| 亚洲深夜福利在线| 九九热这里只有精品6| 久久天天躁狠狠躁夜夜av| 亚洲第一av在线| 欧美在线免费视频| 久久成人精品一区二区三区| 欧美在线免费看| 久久99精品国产99久久6尤物| 亚洲欧洲高清在线| 在线免费看av不卡| 精品一区精品二区| 欧美性xxxx极品hd欧美风情| 色狠狠av一区二区三区香蕉蜜桃| 国产在线观看精品一区二区三区| www.日韩不卡电影av| 日韩av免费网站| 日韩中文字幕视频在线| 欧美激情国产精品| 亚洲精品久久久久久久久久久| 亚洲免费伊人电影在线观看av| 日韩在线观看av| 2021久久精品国产99国产精品| 国产亚洲一区二区在线| 亚洲精品v欧美精品v日韩精品| 亚洲国产成人久久综合一区| 在线视频欧美日韩| 国语自产精品视频在线看一大j8| 一本色道久久88精品综合| 亚洲国内精品在线| 日本中文字幕不卡免费| 欧美乱大交xxxxx| 97超级碰在线看视频免费在线看| 福利精品视频在线| 在线精品国产成人综合| 亚洲精品91美女久久久久久久| 国产日韩换脸av一区在线观看| 国产精品爽爽ⅴa在线观看| 亚洲视频综合网|