Mam pojedynczego komponentu bean sprężyny, który jest wywoływany w odpowiedzi na działanie po stronie klienta. Chcę przechwycić niektóre informacje o kliencie (konkretnie adres IP). Zakładam, że najlepszym źródłem tych informacji jest obiekt żądania. Jak uzyskać dostęp do obiektu żądania z poziomu mojego komponentu bean?Jak uzyskać dostęp do ServletRequest z wnętrza pojedynczego fasoli sprężynowej?
Przebacz mi, jeśli to oczywiste pytanie, jestem nowy na wiosnę.
Próbowałem jedno bez powodzenia .:
((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes())
.getRequest().getRemoteAddr();
Ale to nie powiodło się z IllegalStateException z currentRequestAttributes
. Tekst wyjątku sugeruje używając RequestContextListener
lub RequestContextFilter
Znalazłem reference aby jak skonfigurować RequestContextListener
, ale nadal nie wiem, aby zmienić swoją fasolkę więc mogę uzyskać dostęp do informacji żądania.
Doskonale, to zadziałało! Właśnie miałem nazwę RequestContextListener w web.xml. Do czego służą atrybuty requestDestroyed (ServletRequestEvent)? – wolfcastle
Prawidłowo, to nie jest aplikacja Spring MVC. Niestety, nie widziałem, że po raz pierwszy przeczytałem twoją odpowiedź. – wolfcastle