प्रत्येक अनुरोध एक अलग सूत्र में नियंत्रित किया जाता है। यह "प्रति उपयोगकर्ता धागा" नहीं है। अनुरोध क्लाइंट (वेब ब्राउज़र) और सर्वर से कोई बातचीत है। तो, एक ब्राउज़र में एक यूआरएल टाइप करना, एक AJAX अनुरोध का आह्वान करना, प्रत्येक को एक अलग थ्रेड में संभाला जाता है।
राज्य जो उपयोगकर्ता 'लॉगिन' के दौरान प्राप्त करता है (इसे प्रति लॉगिन नहीं होना चाहिए; यह कहने का एक बेहतर तरीका है कि "एक उपयोगकर्ता द्वारा संबंधित अनुरोधों का एक सेट") आसानी से संग्रहीत किया जाता है सत्र। आप उपयोगकर्ता को लागू होने वाले किसी भी डेटा को स्टोर करने के लिए सत्र का उपयोग कर सकते हैं, हालांकि आपको सावधान रहना चाहिए कि बहुत अधिक डेटा स्टोर न करें क्योंकि यह स्मृति को खाता है। सत्र प्रबंधन के लिए एक डिग्री की आवश्यकता होती है।
हाँ आपको बहुत सावधान अगर आप नए सूत्र बंद आग होना चाहिए; आप चीजों को तोड़ सकते हैं, और आम तौर पर यह एक बुरा विचार है। यदि आपको ऐसा कुछ करना चाहिए जो लंबे समय तक लगेगा, तो जो भी असीमित रूप से है उसे संभालने के लिए जेएमएस का उपयोग करें। यह भी याद रखें कि वेब अनुप्रयोग डेटा को प्रभावित करने वाले सभी कार्यों को वेबैप से नहीं बुलाया जाना चाहिए। आईई (आप क्वार्ट्ज अनुसूचक की तरह कुछ का उपयोग कर एक नौकरी लिख सकते हैं, या यहां तक कि एक अलग प्रोग्राम लिख सकते हैं और एक क्रॉन में चलाने के लिए इसे सेट अप हो - एक काम है कि डेटा दैनिक स्कैन करता है एक अलग कार्य में या बिल्ला से बाहर के रूप में चलाया जा सकता है हालांकि, वेबपैड के नीचे से डेटा बदलने के काम से सावधान रहें)।
आप इस तरह के वसंत और हाइबरनेट के रूप में नस्ल प्रौद्योगिकियों का सबसे अच्छा उपयोग कर रहे हैं, वे आम तौर पर वस्तुओं के लिए बाध्य (या एप्लिकेशन डेवलपर द्वारा विन्यस्त किया जा सकता) (जावा के ThreadLocal का प्रयोग करके) कि प्रोग्रामर प्रत्येक थ्रेड की आवश्यकता होगी।
यह भी कारणों से अपने स्वयं के धागे शुरू कर खतरनाक है में से एक है। यदि आप अपना खुद का धागा शुरू करते हैं, तो अनुरोध समाप्त होने पर प्रारंभिक धागे से जुड़े संसाधनों को खो दिया जा सकता है, और इसका अर्थ यह है कि यदि आप अपने कार्यकर्ता थ्रेड में उन संसाधनों तक पहुंचने का प्रयास करते हैं तो वे उपलब्ध नहीं होंगे। इस प्रकार की बग गधे में खोजने/ठीक करने के लिए दर्द हो सकती है।
संपादित करें - के रूप में स्टीफन सी एक और जवाब के लिए एक टिप्पणी में कहा, यह महत्वपूर्ण है आम तौर पर ध्यान दें कि बिलाव (और अन्य कंटेनरों) उपयोग के लिए धागे का एक पूल बनाए रखें। इसका मतलब है कि प्रत्येक अनुरोध के लिए एक नया धागा जरूरी नहीं है। इसका मतलब है कि प्रत्येक अनुरोध एक अलग थ्रेड, या बनाया जो हो सकता है या हो सकता है नहीं किया जा पुन: उपयोग में चलाता है।
आपको यह जवाब मिल सकता है (http://stackoverflow.com/questions/3106452/java-servlet-instantiation-and-session-variables/3106909#3106909) सहायक भी। – BalusC