/* ------------------------------------------------------------ */ public String encodeURL(String url) { // should not encode if cookies in evidence if (_servletHttpRequest == null || _servletHttpRequest.isRequestedSessionIdFromCookie() && _servletHttpRequest.getServletHandler().isUsingCookies()) return url; // get session; if (_session == null && !_noSession) { _session = _servletHttpRequest.getSession(false); _noSession = (_session == null); } // no session or no url if (_session == null || url == null) return url; // invalid session String id = _session.getId(); if (id == null) return url; // Check host and port are for this server // TODO not implemented // Already encoded int prefix = url.indexOf(SessionManager.__SessionUrlPrefix); if (prefix != -1) { int suffix = url.indexOf("?", prefix); if (suffix < 0) suffix = url.indexOf("#", prefix); if (suffix <= prefix) return url.substring(0, prefix + SessionManager.__SessionUrlPrefix.length()) + id; return url.substring(0, prefix + SessionManager.__SessionUrlPrefix.length()) + id + url.substring(suffix); } // edit the session int suffix = url.indexOf('?'); if (suffix < 0) suffix = url.indexOf('#'); if (suffix < 0) return url + SessionManager.__SessionUrlPrefix + id; return url.substring(0, suffix) + SessionManager.__SessionUrlPrefix + id + url.substring(suffix); }