जॉन स्कीट कहा व्यावहारिक रूप से सब कुछ है, लेकिन उनकी सलाह "बस बिट्स है कि आप की जरूरत है" के लिए एक स्पष्टीकरण - आप अपने अनुरोध पैरामीटर नीचे पारित कर दिया है, लेकिन आप HttpServletRequest
पर निर्भरता की जरूरत नहीं है, request.getParameterMap()
पारित की जरूरत है।
और ThreadLocal
विकल्प पर थोड़ा विस्तार - यदि आप एक Filter
जो आने वाले सभी अनुरोधों को प्रबंधित, और एक
public final static ThreadLocal<HttpServletRequest> httpServletRequestTL =
new ThreadLocal<HttpServletRequest>();
में अनुरोध क्योंकि आप प्रत्येक अनुरोध पर यह तय कर रहे हैं (फिल्टर के साथ सावधान सेट कर सकते हैं मानचित्रण), आपको सर्वलेट-कंटेनर थ्रेड पूल के बारे में चिंता करने की आवश्यकता नहीं होगी - आपके पास हमेशा वर्तमान अनुरोध होगा।
पीएस स्काफमैन द्वारा प्रस्तावित वसंत उपयोगिता के पीछे यह तर्क है - मैं स्वयं को बनाने के बजाए स्थिर घटक की सिफारिश करने में शामिल हूं।
कृपया विस्तार से बताएं * जहां *, * क्यों * और * जब * यदि आप इस की जरूरत है, तो हम ज्यादा बेहतर सुझावों के साथ यह करने के लिए कैसे पॉप हो सकता है: यदि नहीं, तो आप इस JVM पैरामीटर जोड़कर इसे सक्षम करना सही रास्ता। अर्द्ध छद्म कोड/एसएससीई पोस्ट करने से आप जो भी हासिल करने की कोशिश कर रहे हैं उसकी तस्वीर प्राप्त करने में भी मदद कर सकते हैं। – BalusC
मुझे सोलर क्वेरी कॉम्पोनेंट का विस्तार करने की आवश्यकता है जो SolrRequest स्वीकार करता है। दुर्भाग्यवश SolrRequest सर्वलेट अनुरोध के चारों ओर एक रैपर नहीं है। SolrDispatchFilter (अनुरोध को संभालने के लिए प्रयोग किया जाता है, केवल फिल्टर नहीं) HttpServletRequest को SolrRequest अनुवाद करता है। इसलिए मेरे कस्टम क्वेरी कॉम्पोनेंट पर अनुरोध से अतिरिक्त जानकारी पास करने का एकमात्र तरीका SolrDispatchFilter को संशोधित करना है, जिसे मैं नहीं करना चाहता हूं। आपकी मदद के लिए बहुत से लोग धन्यवाद। ThreadLocal चर मेरे लिए नौकरी करना चाहिए। – aseem