Jak ręcznie załadować sesję Java przy użyciu JSESSIONID?

Mam serwlet, który obsługuje post wieloczęściowy. Post jest w rzeczywistości tworzony przez komponent do przesyłania plików Flash osadzony na stronie. W niektórych przeglądarkach generowany przez Flash POST nie zawiera JSESSIONID, który uniemożliwia mi załadowanie pewnych informacji z sesji podczas postu.

Komponent wysyłania flash zawiera informacje o plikach cookie i sesjach w specjalnym polu formularza. Korzystając z tego pola formularza, mogę faktycznie pobrać wartość JSESSIONID. Problem polega na tym, że nie wiem, jak użyć tej wartości JSESSIONID do ręcznego ładowania tej konkretnej sesji.

Edytować - Na podstawie rozwiązania ChssPly76 stworzyłem następująceHttpSessionListener realizacja:

    @Override
    public void sessionCreated(final HttpSessionEvent se) {
        final HttpSession session = se.getSession();
        final ServletContext context = session.getServletContext();
        context.setAttribute(session.getId(), session);
    }

    @Override
    public void sessionDestroyed(final HttpSessionEvent se) {
        final HttpSession session = se.getSession();
        final ServletContext context = session.getServletContext();
        context.removeAttribute(session.getId());
    }

Który dodaje wszystkie sesje doServletContext jako atrybuty odwzorowane przez ich unikalne identyfikatory. Mogę zamiast tego umieścić mapę sesji w kontekście, ale wydaje się to zbędne. Proszę zamieścić jakiekolwiek przemyślenia na temat tej decyzji. Następnie dodaję następującą metodę do mojego serwletu, aby rozwiązać sesję według identyfikatora:

    private HttpSession getSession(final String sessionId) {
        final ServletContext context = getServletContext();
        final HttpSession session = (HttpSession) context.getAttribute(sessionId);
        return session;
    }

questionAnswers(5)

yourAnswerToTheQuestion