Czy właściwość ThreadLocal jest lepsza niż HttpServletRequest.setAttribute („klucz”, „wartość”)?
Specyfikacja serwletu (zobacz moje poprzednie pytanie) gwarantuje, że ten sam wątek wykona wszystkie filtry i powiązany serwlet. Biorąc to pod uwagę, nie widzę żadnego zastosowania do przekazywania danych za pomocąHttpServletRequest.setAttribute
jeśli istnieje możliwość użycia aThreadLocal
(zakładając, że czyścisz prawidłowo). Czuję, że korzystanie z niego jest dwieThreadLocal
: bezpieczeństwo typu i lepsza wydajność, ponieważ nie są używane żadne klucze łańcuchowe ani mapy (z wyjątkiem prawdopodobnie do kolekcji wątków według (nie-łańcuchowego) identyfikatora wątku).
Czy ktoś może potwierdzić, czy mam rację, że mogę kontynuować porzucaniesetAttribute
?