日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:280日期: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
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品动态| 亚洲作爱视频| 日韩av网站在线免费观看| 蜜臀av亚洲一区中文字幕| 亚洲深夜福利| 日韩一区精品视频| 亚洲tv在线| 国产乱人伦精品一区| 欧美a一区二区| 国产在线观看91一区二区三区| 国产一区二区三区探花| 国产精品nxnn| 国产一区二区三区精品在线观看| 成人在线超碰| 日韩免费福利视频| 日韩国产欧美| 女人av一区| 国产精品婷婷| 日韩成人在线看| 国产精品视频一区二区三区| 国产精品v一区二区三区| 国产一区三区在线播放| 婷婷综合六月| 在线综合欧美| 91精品丝袜国产高跟在线| 国产欧美自拍一区| 粉嫩av一区二区三区四区五区 | 久久久久蜜桃| 先锋亚洲精品| 国产美女精品视频免费播放软件| 国产成人精品一区二区三区免费| 欧洲av一区二区| 免费在线观看视频一区| 青青草国产成人99久久| 精品精品国产三级a∨在线| 欧美日韩中文字幕一区二区三区| 丝袜美腿亚洲一区| 久久精品国内一区二区三区| 亚洲天堂免费电影| 首页欧美精品中文字幕| 亚洲精品无播放器在线播放| 国产精品日本一区二区不卡视频| 成人三级高清视频在线看| 亚洲一级在线| 国产精品高清一区二区| 婷婷成人综合| 欧美日韩伊人| 亚洲一区资源| 日韩专区一卡二卡| 精品久久97| 视频精品一区二区| 国产h片在线观看| 蜜臀av亚洲一区中文字幕| 久久影视三级福利片| 99在线|亚洲一区二区| 日韩1区2区日韩1区2区| 日韩免费小视频| 天堂av一区| 99久久久国产精品美女| 日本午夜精品| 国产一区日韩一区| 国产精品探花在线观看| 日韩天堂av| 国产精品99久久精品| 亚洲精品成人一区| 免费看av不卡| 欧美一区自拍| 欧美日韩国产高清| 91精品一区国产高清在线gif| 欧美午夜三级| 欧美sss在线视频| 欧美日本不卡| 国产模特精品视频久久久久| 国产成人a视频高清在线观看| 蜜臀av在线播放一区二区三区| 久久久久久网| 国产日产精品_国产精品毛片 | 视频一区二区三区入口| 日韩欧美综合| 国产欧美久久一区二区三区| 亚洲一区二区三区免费在线观看| 国产91在线精品| 欧美一区二区三区久久| 丝袜脚交一区二区| 久久久噜噜噜| 国产在线观看91一区二区三区| 日韩精品中文字幕一区二区| 国产99精品| 精品久久久久中文字幕小说| 日韩三级精品| 视频一区二区三区入口| 久久婷婷久久| 狠狠躁少妇一区二区三区| 国产精品久久久久久久久免费高清| 中文一区二区| 国产99亚洲| 亚洲特色特黄| 久久青青视频| 久久中文字幕一区二区三区| 亚洲女同一区| 麻豆成全视频免费观看在线看| 国产日韩欧美高清免费| 中文字幕亚洲影视| 超级白嫩亚洲国产第一| 蜜桃视频一区二区| 亚洲激精日韩激精欧美精品| 国产精品久久久久久久久久久久久久久 | 久久久精品日韩| 亚洲天堂久久| 最新中文字幕在线播放| 欧美黄色一区| 综合日韩在线| 亚洲精品成人一区| 日韩天堂在线| 欧美精品一区二区久久| 亚洲精品影视| 日韩中文欧美在线| 久久不见久久见免费视频7| 红桃视频国产一区| 午夜精品福利影院| 老司机精品视频网| 国产精品地址| 欧美经典一区| 国产欧美一级| 国产欧美一区二区精品久久久 | 一区视频在线| 99国产精品自拍| 日韩免费在线| 欧美日韩国产免费观看 | 蜜桃久久久久| 国产精品视频一区二区三区四蜜臂| 免费人成精品欧美精品 | 亚洲日本久久| 国产精品色在线网站| 久久精品国产久精国产| 激情综合亚洲| 国产日韩高清一区二区三区在线| 国产欧美精品| 亚洲一级网站| 日韩国产91| 美女久久久久| 欧美理论视频| 美国欧美日韩国产在线播放| 日本99精品| 精品91福利视频| 蜜臀国产一区二区三区在线播放| 久久久夜精品| 亚洲一区二区三区免费在线观看| 伊人久久一区| 国产欧美激情| 色一区二区三区四区| 久久精品亚洲人成影院 | 国产精品免费99久久久| 成人在线免费观看网站| 欧美日韩中文字幕一区二区三区| 久久久久久久久久久妇女 | 另类小说一区二区三区| 久久精品亚洲人成影院| 亚洲精选久久| 国产精品一区二区中文字幕| xxxxx性欧美特大| 亚洲开心激情| 欧美日韩一二| 国产精品不卡| 卡一精品卡二卡三网站乱码| 蜜臀av一区二区在线免费观看| 久久人人97超碰国产公开结果| 国产精品久久久久久久久久久久久久久| 久久中文字幕av一区二区不卡| 国产精品一区高清| 亚洲精品动态| 蜜臀国产一区二区三区在线播放| 国产99精品| 亚洲高清影视| 日韩精品欧美激情一区二区| 亚洲不卡av不卡一区二区| 蜜臀久久久久久久| 7m精品国产导航在线| 给我免费播放日韩视频| 日本 国产 欧美色综合| 日韩精品久久久久久| 日韩.com| 巨乳诱惑日韩免费av| 久久香蕉网站| 国产一区亚洲| 国产日韩在线观看视频| 国产专区一区| 免费一级欧美在线观看视频 | 99久久久久久中文字幕一区| 久久免费黄色| 免费在线小视频| 国产综合视频| 色8久久久久| 亚洲一二三区视频| 精品视频自拍| 成人免费网站www网站高清| 香蕉久久精品| 999久久久91| 在线看片一区| 国产精品一区二区三区www|