Является ли ThreadLocal предпочтительным для HttpServletRequest.setAttribute («ключ», «значение»)?
Спецификация сервлета (см. Мой предыдущий вопрос) гарантирует, что один и тот же поток выполнит все фильтры и связанный сервлет. Учитывая это, я не вижу никакого смысла для передачи данных с использованиемHttpServletRequest.setAttribute
если есть возможность использоватьThreadLocal
(при условии, что вы правильно очистите). Я чувствую, что есть два преимущества использованияThreadLocal
: безопасность типов и лучшая производительность, потому что не используются строковые ключи или карты (за исключением, вероятно, в коллекции потоков по (не строковому) идентификатору потока).
Может ли кто-нибудь подтвердить, если я прав, чтобы я мог отказаться отsetAttribute
?