CookieHttpSessionStrategy
源码分析
public final class CookieHttpSessionStrategy implements MultiHttpSessionStrategy, HttpSessionManager { private static final String SESSION_IDS_WRITTEN_ATTR = CookieHttpSessionStrategy.class .getName().concat(".SESSIONS_WRITTEN_ATTR"); //默认的别名是0 static final String DEFAULT_ALIAS = "0"; //默认的别名参数 static final String DEFAULT_SESSION_ALIAS_PARAM_NAME = "_s"; private static final Pattern ALIAS_PATTERN = Pattern.compile("^[\\w-]{1,50}$"); private String sessionParam = DEFAULT_SESSION_ALIAS_PARAM_NAME; private CookieSerializer cookieSerializer = new DefaultCookieSerializer(); public String getRequestedSessionId(HttpServletRequest request) { Map<String, String> sessionIds = getSessionIds(request); String sessionAlias = getCurrentSessionAlias(request); return sessionIds.get(sessionAlias); } public String getCurrentSessionAlias(HttpServletRequest request) { if (this.sessionParam == null) { return DEFAULT_ALIAS; } String u = request.getParameter(this.sessionParam); if (u == null) { return DEFAULT_ALIAS; } if (!ALIAS_PATTERN.matcher(u).matches()) { return DEFAULT_ALIAS; } return u; } public String getNewSessionAlias(HttpServletRequest request) { Set<String> sessionAliases = getSessionIds(request).keySet(); if (sessionAliases.isEmpty()) { return DEFAULT_ALIAS; } long lastAlias =