2010-09-02 12 views
7

Bazı istemci taraf işlemlerine yanıt olarak çağrılan bir tek yaylı kuru fasulyem var. İstemci hakkında bazı bilgileri (özellikle IP adresi) yakalamak istiyorum. Bu bilginin en iyi kaynağının istek nesnesi olduğunu düşünüyorum. Fasulyemden gelen istek nesnesine nasıl erişebilirim?Tek bir servo çekirdeği içinden bir ServletRequest'e nasıl erişilir?

Bu açık bir soru ise beni affet, ben Spring için çok yeni.

Ben başarı .:

((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()) 
.getRequest().getRemoteAddr(); 

olmadan bir şey denedim Ama bu currentRequestAttributes dışında bir IllegalStateException ile başarısız oldu. İstisna metin ben RequestContextListener nasıl yapılandırılacağı bir reference buldum bir RequestContextListener veya RequestContextFilter

kullanılmasını önerir, ancak yine de bu yüzden istek bilgilere erişebilir benim fasulye değiştirmek bilmiyorum.

cevap

7

RequestContextListenerweb.xml eklenir ve bu akım iplikle akım isteği ilişkilendirir. Bu iş parçacığı ilişkilendirmesi, daha önce denediğiniz şekilde RequestContextHolder aracılığıyla alınır.

Dolayısıyla, sadece web.xml içine RequestContextListener tokat, ve kod sadece çalışmaya başlaması gerekir: DispatcherServlet otomatik olarak yapacak beri

<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 

RequestContextListener normalde Bahar MVC uygulamalarında gerekli değildir. Bu bir bahar MVC uygulaması olmadığını varsayalım?

+0

Mükemmel, bu işe yaradı! Web.xml'de sadece RequestContextListener ismini aldım. RequestDestroyed (ServletRequestEvent) .attributes ne yapar? – wolfcastle

+0

Doğru, bu bir Bahar MVC uygulaması değildir. Üzgünüm, ilk cevabını okudum. – wolfcastle

İlgili konular