Как я могу вручную загрузить сеанс Java, используя JSESSIONID?

У меня есть сервлет, который обрабатывает многочастную форму. Сообщение фактически создается компонентом загрузки файлов Flash, встроенным в страницу. В некоторых браузерах POST-сгенерированный Flash-файл не содержит JSESSIONID, что делает невозможным загрузку определенной информации из сеанса во время публикации.

Компонент флэш-загрузки содержит информацию о cookie и сеансе в специальном поле формы. Используя это поле формы, я могу получить значение JSESSIONID. Проблема в том, что я не знаю, как использовать это значение JSESSIONID для ручной загрузки этого конкретного сеанса.

Редактировать - Основываясь на решении ChssPly76, я создал следующееHttpSessionListener реализация:

    @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());
    }

Который добавляет все сеансы кServletContext в качестве атрибутов, сопоставленных их уникальными идентификаторами. Вместо этого я мог бы поместить карту сессий в контекст, но это кажется излишним. Пожалуйста, оставьте любые мысли по этому решению. Затем я добавляю следующий метод в свой сервлет для разрешения сеанса по идентификатору:

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

Ответы на вопрос(5)

Ваш ответ на вопрос