成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:226日期:2022-06-07 09:23:29

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

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

標簽: JSP
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品沙发午睡系列990531| 色噜噜狠狠一区二区三区果冻| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品日韩精品欧美在线| www.欧美亚洲| 91精品国产综合久久久久| 日本亚洲视频在线| 亚洲一区二区三区四区中文| 亚洲欧洲精品一区二区精品久久久| 欧美激情国产日韩| 精品欧美一区二区久久| 国产精品一区久久久久| 欧美人与性动xxxx| 免费人成在线不卡| 在线亚洲人成电影网站色www| 丝袜国产日韩另类美女| 老司机午夜精品视频在线观看| 亚洲女人小视频在线观看| 欧美日韩国产色综合一二三四| 久久精品人人做| 欧美一区免费| 国产精品剧情在线亚洲| 国精品一区二区| 国产精品色呦呦| 国产一在线精品一区在线观看| 国产三级一区二区| 欧美日本二区| 成人免费在线观看入口| 91丨porny丨最新| 精品国产免费一区二区三区四区| 成人免费av资源| 亚洲精品一线二线三线无人区| 99精品热视频| 欧美激情综合网| 亚洲欧洲日夜超级视频| 亚洲黄色免费电影| 亚洲专区免费| 美女视频网站黄色亚洲| 在线观看日韩av先锋影音电影院| 国内精品在线播放| 精品久久五月天| 亚洲视频观看| 午夜精品免费在线观看| 欧美亚洲禁片免费| 国产一区二区三区视频在线播放| 欧美岛国在线观看| 欧美亚州在线观看| 亚洲激情六月丁香| 色香蕉成人二区免费| 国内精品第一页| 欧美成人在线直播| 91麻豆国产福利在线观看| 国产精品网站在线观看| 国产精品久久九九| 奇米在线7777在线精品| 欧美丰满一区二区免费视频| 粉嫩av亚洲一区二区图片| 欧美极品少妇xxxxⅹ高跟鞋| 99精品国产在热久久下载| 亚洲综合免费观看高清完整版 | 鲁大师影院一区二区三区| 男女男精品视频| 欧美一区二区成人6969| 成人免费精品视频| 综合久久国产九一剧情麻豆| 日本高清成人免费播放| 久久 天天综合| 久久免费午夜影院| 亚洲精品麻豆| 天堂在线亚洲视频| 日韩写真欧美这视频| 91麻豆国产福利在线观看| 最新成人av在线| 在线观看国产日韩| 成人免费视频网站在线观看| 国产精品美女久久久久aⅴ国产馆| 久久99伊人| 国产精品一级在线| 中文字幕一区在线观看| 一本色道久久综合精品竹菊| 国产不卡视频一区| ...av二区三区久久精品| 91久久线看在观草草青青| av综合在线播放| 亚洲成av人**亚洲成av**| 日韩视频在线永久播放| 在线成人国产| 美女视频黄 久久| 国产人妖乱国产精品人妖| 美女网站久久| 成人app网站| 亚洲一区二区成人在线观看| 欧美一级专区免费大片| 亚洲毛片在线| 国产精品一二三区| 伊人色综合久久天天| 91麻豆精品久久久久蜜臀| 一本色道久久综合亚洲二区三区| 国产精品资源网站| 一区二区三区四区亚洲| 精品国产一二三区| 久久综合网络一区二区| 午夜国产欧美理论在线播放| 蜜乳av一区二区三区| 一色屋精品亚洲香蕉网站| 欧美一区二区三区免费| 久久高清一区| 欧美日本韩国一区二区三区| 国产自产v一区二区三区c| 亚洲裸体在线观看| 精品盗摄一区二区三区| 久久免费国产| 欧美日韩国产成人精品| 国产伦精品一区二区三区免费| 亚洲黄色片在线观看| 久久天堂av综合合色蜜桃网| 欧美午夜精品久久久久久孕妇| 一区免费在线| 成人aa视频在线观看| 蜜桃视频在线观看一区| 亚洲精品国产高清久久伦理二区| 精品欧美一区二区在线观看| 91福利在线免费观看| 99热精品在线| 91蜜桃网址入口| 激情深爱一区二区| 亚洲成人动漫在线免费观看| 国产精品免费视频一区| 精品捆绑美女sm三区| 欧美日本一区二区| 色偷偷一区二区三区| 亚洲东热激情| 99国产精品久久久久久久久久| 青青草原综合久久大伊人精品| 亚洲图片你懂的| 国产色婷婷亚洲99精品小说| 日韩视频不卡中文| 欧美日韩精品欧美日韩精品一 | 日韩女优毛片在线| 在线观看一区二区精品视频| 国产欧美亚洲日本| 欧美日韩99| 99久久久免费精品国产一区二区| 国产一区二区毛片| 日本不卡一区二区| 亚洲国产精品精华液网站| 最新久久zyz资源站| 中文字幕av一区二区三区| 久久天堂av综合合色蜜桃网| 欧美电影免费观看高清完整版在线观看 | 午夜伦欧美伦电影理论片| 国产精品久久久久桃色tv| 久久久久久久av麻豆果冻| 日韩欧美电影一二三| 欧美一级日韩免费不卡| 欧美喷潮久久久xxxxx| 欧美在线一区二区| 色婷婷激情综合| 久久综合精品一区| 久久综合电影| 色狠狠色噜噜噜综合网| 老司机久久99久久精品播放免费| 国产精品一区免费观看| 国产欧美日韩亚洲一区二区三区| 亚洲国产综合在线看不卡| 在线观看一区欧美| 在线高清一区| 最新成人av网站| 国产欧美一区二区三区另类精品 | 国产69精品久久久久毛片| 国产精品一区一区| 国产99久久久国产精品潘金网站| 国产大陆精品国产| 高清不卡一区二区| 成人v精品蜜桃久久一区| 成人av在线资源网| av激情成人网| 91玉足脚交白嫩脚丫在线播放| 成人av免费网站| 91免费看片在线观看| 欧美日韩精品综合| 狠色狠色综合久久| 日韩午夜在线| 亚洲一区不卡| 91久久精品日日躁夜夜躁欧美| 欧美亚洲国产一区二区三区| 欧美妇女性影城| 精品久久人人做人人爽| 国产色一区二区| 亚洲人成人一区二区在线观看| 亚洲资源中文字幕| 无吗不卡中文字幕| 精品在线你懂的| 成人综合激情网| 欧美日韩国产高清视频| a91a精品视频在线观看| 久久三级视频| 在线成人av影院| 精品久久国产老人久久综合| 国产网站一区二区|