लेख को समझने के लिए आवश्यक ज्ञान: आप पहले से ही कमोबेश
Java Core का पता लगा चुके हैं और JavaEE प्रौद्योगिकियों और
वेब प्रोग्रामिंग को देखना चाहेंगे । आपके लिए वर्तमान में जावा कलेक्शंस खोज का अध्ययन करना सबसे अधिक उपयोगी होगा, जो लेख के करीब के विषयों से संबंधित है।
वर्तमान में, मैं
IntelliJ IDEA एंटरप्राइज़ संस्करण का उपयोग करता हूं (
संपादक का नोट: यह आईडीई का भुगतान किया गया विस्तारित संस्करण है; यह आमतौर पर व्यावसायिक विकास में उपयोग किया जाता है)।
फ्री कम्युनिटी एडिशन की तुलना में इसमें वेब प्रोजेक्ट्स के साथ काम करना ज्यादा आसान है ।
एंटरप्राइज़ संस्करण में , माउस का शाब्दिक एक क्लिक प्रोजेक्ट बनाता है, इसे सर्वलेट कंटेनर में छोड़ देता है, सर्वर शुरू करता है, और ब्राउज़र में प्रोजेक्ट के लिए एक वेबपेज भी खोलता है। आईडिया के नि:शुल्क संस्करण में, आपको इसमें से अधिकांश स्वयं करना होगा, अर्थात "मैन्युअल"। मैं
अपाचे मेवेन का उपयोग करता हूंपरियोजना का निर्माण और उसके जीवन चक्र का प्रबंधन करने के लिए। मैंने इस परियोजना में इसकी क्षमताओं (पैकेज/निर्भरता प्रबंधन) का केवल एक छोटा सा हिस्सा इस्तेमाल किया। सर्वलेट कंटेनर/एप्लिकेशन सर्वर के रूप में, मैंने Apache Tomcat संस्करण 9.0.12 को चुना।
आएँ शुरू करें
सबसे पहले,
IntelliJ IDEA खोलें और एक खाली मावेन प्रोजेक्ट बनाएं ।
बाईं ओर,
मावेन का चयन करें और जांचें कि
परियोजना का JDK ऊपर चुना गया है। यदि यह वहां नहीं है, तो सूची में से एक का चयन करें, या
नया क्लिक करें ... और कंप्यूटर से एक चुनें।
इस विंडो में, आपको
GroupId और ArtifactId निर्दिष्ट करने की आवश्यकता है । GroupId परियोजना जारी करने वाली कंपनी के विशिष्ट पहचानकर्ता को संदर्भित करता है
। सामान्य अभ्यास कंपनी के डोमेन नाम का उपयोग करना है, लेकिन उल्टे क्रम में। हालांकि दर्पण की तरह नहीं। उदाहरण के लिए, यदि किसी कंपनी का डोमेन नाम
maven.apache.org है, तो उसका GroupId org.apache.maven होगा।
. अर्थात्, हम पहले शीर्ष-स्तरीय डोमेन लिखते हैं, एक बिंदु जोड़ते हैं, फिर दूसरे-स्तर का डोमेन, और इसी तरह। यह आम तौर पर स्वीकृत दृष्टिकोण है। यदि आप स्वयं परियोजना को "समाप्त" कर रहे हैं (और किसी कंपनी के हिस्से के रूप में नहीं), तो आप यहां अपना व्यक्तिगत डोमेन नाम डालते हैं (उलटे क्रम में भी!)। यदि आपके पास एक है, तो बिल्कुल। :) यदि नहीं, चिंता न करें। आप वास्तव में
यहां कुछ भी लिख सकते हैं ।
डोमेन नाम john.doe.org वाली कंपनी के लिए, GroupId org.doe.john होगा। अलग-अलग कंपनियों द्वारा निर्मित समान-नामित परियोजनाओं को अलग करने के लिए इस नामकरण परंपरा की आवश्यकता है। |
इस उदाहरण में, मैं एक काल्पनिक डोमेन का उपयोग करूँगा:
fatlady.info.codegym.cc । तदनुसार, मैं
GroupId फ़ील्ड में
cc.codergym.info.fatlady दर्ज करता हूँ। ArtifactId बस हमारे प्रोजेक्ट का नाम है। आप शब्दों को अलग करने के लिए अक्षरों और कुछ प्रतीकों (उदाहरण के लिए हाइफ़न) का उपयोग कर सकते हैं। हमारे "विरूपण साक्ष्य" का नाम वही होगा जो हम यहाँ लिखेंगे। इस उदाहरण में, मैं
my-super-project का उपयोग करने जा रहा हूँ । संस्करण फ़ील्ड को अभी स्पर्श न करें—बस इसे वैसा ही रहने दें जैसा यह है। और जब आप कोई नया प्रोजेक्ट बनाते हैं तो यह मानक
आईडिया विंडो है। परंपरा को ध्यान में रखते हुए, इसे माय-सुपर-प्रोजेक्ट कहते हैं ।
प्रोजेक्ट बनाया गया है!
Pom.xml तुरंत खुल जाता है। यह मावेन सेटिंग्स वाली फाइल है। यदि हम मावेन को बताना चाहते हैं कि क्या करना है या कुछ कहां खोजना है, तो हम इस pom.xml फ़ाइल में उसका वर्णन करते हैं। यह परियोजना की जड़ में स्थित है। |
हम देखते हैं कि इसमें अब सटीक डेटा है जिसे हमने
मावेन प्रोजेक्ट बनाते समय दर्ज किया था :
groupId ,
विरूपण साक्ष्य , और
संस्करण (हमने उस अंतिम को नहीं छुआ)।
हमारी परियोजना की संरचना
इस
मावेन परियोजना की एक विशिष्ट संरचना है।
जैसा कि आप देख सकते हैं, जड़ में है:
- एक .idea निर्देशिका, जिसमें वर्तमान परियोजना की IDEA सेटिंग्स शामिल हैं;
- एक src निर्देशिका, जहाँ हम अपना स्रोत कोड बनाते हैं;
- एक my-super-project.iml फ़ाइल, जो कि IDEA द्वारा बनाई गई एक प्रोजेक्ट फ़ाइल है;
- pom.xml फ़ाइल (मावेन प्रोजेक्ट फ़ाइल जिसका मैंने पहले उल्लेख किया था), जो अब खुली है । अगर मैं कहीं pom.xml का जिक्र करता हूं, तो यह वह फाइल है जिसके बारे में मैं बात कर रहा हूं।
Src फोल्डर के अंदर , दो सबफ़ोल्डर होते हैं:
- मुख्य - हमारे कोड के लिए;
- परीक्षण - हमारे कोड के परीक्षण के लिए।
मुख्य और
परीक्षण में , एक
जावा फ़ोल्डर है ।
आप इन्हें एक ही फ़ोल्डर के रूप में सोच सकते हैं, मुख्य में से एक स्रोत कोड के लिए है, और
परीक्षण में एक परीक्षण कोड के लिए है। अभी के लिए, हमारे पास
संसाधन फ़ोल्डर के लिए कोई उपयोग नहीं है। हम इसका इस्तेमाल नहीं करेंगे। लेकिन इसे वहीं छोड़ दें।
इसे एक वेब प्रोजेक्ट में बदलना
यह हमारे
मावेन प्रोजेक्ट को वेब प्रोजेक्ट में बदलने का समय है। ऐसा करने के लिए, इस ट्री में प्रोजेक्ट के नाम पर राइट-क्लिक करें और
ऐड फ्रेमवर्क सपोर्ट चुनें ...
एक विंडो खुलती है जहां हम अपने प्रोजेक्ट में विभिन्न फ्रेमवर्क के लिए सपोर्ट जोड़ सकते हैं। लेकिन हमें केवल एक की जरूरत है:
वेब एप्लीकेशन । उत्तर वह है जिसे हम चुनते हैं।
सुनिश्चित करें कि
वेब एप्लिकेशन चेकबॉक्स चयनित है, और यह कि मुख्य विंडो इंगित करती है कि हम चाहते हैं कि एक
web.xml फ़ाइल स्वचालित रूप से बनाई जाए (मैं चेकबॉक्स का चयन करने की अनुशंसा करता हूं, यदि यह पहले से चयनित नहीं है)। फिर हम देखते हैं कि
वेब फोल्डर को हमारे प्रोजेक्ट स्ट्रक्चर में जोड़ दिया गया है।
यह पते के साथ हमारी वेब परियोजना का मूल है
/
. दूसरे शब्दों में, यदि हम ब्राउज़र में '
लोकलहोस्ट ' दर्ज करते हैं (जब प्रोजेक्ट चल रहा हो), तो यह वेब प्रोजेक्ट के रूट पर यहां दिखेगा। यदि हम
localhost/addUser दर्ज करते हैं, तो यह वेब फ़ोल्डर में
addUser नामक संसाधन की तलाश करेगा ।
मुख्य बात जो आपको समझने की जरूरत है वह यह है कि जब हम इसे टॉमकैट में डालते हैं तो वेब फोल्डर हमारे प्रोजेक्ट का रूट होता है। अब हमारे पास एक निश्चित फ़ोल्डर संरचना है, लेकिन तैयार परियोजना में हम जो बनाने जा रहे हैं, यह थोड़ा अलग होगा। विशेष रूप से, वेब फ़ोल्डर रूट होगा। |
वेब में ,
WEB-INF नामक एक आवश्यक फ़ोल्डर होता है , जहाँ
web.xml फ़ाइल स्थित होती है, यानी जिसे हमने प्रोग्राम को अंतिम चरण में बनाने के लिए कहा था। चलिए इसे खोलते हैं।
आप देख सकते हैं कि इसमें अभी तक कुछ भी दिलचस्प नहीं है, केवल एक शीर्षक है। वैसे, अगर आपने फ़ाइल बनाने के लिए अनुरोध नहीं किया है, तो आपको इसे मैन्युअल रूप से बनाना होगा, यानी सभी शीर्षलेख हाथ से टाइप करें। या, कम से कम, इंटरनेट पर पहले से तैयार संस्करण की खोज करें। हमें
web.xml की क्या आवश्यकता है? मैपिंग के लिए।
यहां हम टॉमकैट के लिए बताएंगे कि कौन सा यूआरएल किस सर्वलेट को पास करने का अनुरोध करता है। लेकिन हम उस पर बाद में विचार करेंगे। अभी के लिए इसे खाली छोड़ दें। वेब फ़ोल्डर
में एक index.jsp फ़ाइल भी होती है
. खोलो इसे।
यह वह फ़ाइल है जिसे डिफ़ॉल्ट रूप से निष्पादित किया जाएगा, बोलने के लिए। दूसरे शब्दों में, यह ठीक वही है जो हम तब देखेंगे जब हम परियोजना शुरू करेंगे। मूल रूप से,
jsp एक साधारण
HTML फ़ाइल है , सिवाय इसके कि आप इसके अंदर जावा कोड निष्पादित कर सकते हैं।
स्थिर और गतिशील सामग्री के बारे में थोड़ा सा
स्थैतिक सामग्री वह सामग्री है जो समय के साथ नहीं बदलती है।
एक HTML फ़ाइल में हम जो कुछ भी लिखते हैं वह अपरिवर्तित प्रदर्शित होता है, जैसा कि लिखा गया है। यदि हम "
हैलो वर्ल्ड " लिखते हैं, तो जैसे ही हम पृष्ठ खोलते हैं, और 5 मिनट में, और कल, और एक सप्ताह में, और एक वर्ष में यह पाठ प्रदर्शित होगा। यह नहीं बदलेगा। लेकिन क्या होगा अगर हम पृष्ठ पर वर्तमान तिथि प्रदर्शित करना चाहते हैं? अगर हम सिर्फ "
27 अक्टूबर, 2017 लिखते हैं", फिर कल हम वही तारीख देखेंगे, और एक सप्ताह बाद, और एक साल बाद। लेकिन हम चाहते हैं कि तारीख वर्तमान हो। यह वह जगह है जहां पृष्ठ पर सही कोड निष्पादित करने की क्षमता सहायक होती है। हम एक प्राप्त कर सकते हैं दिनांक वस्तु, इसे वांछित प्रारूप में परिवर्तित करें, और इसे पृष्ठ पर प्रदर्शित करें। फिर, प्रत्येक दिन जब हम पृष्ठ खोलते हैं, तो तिथि हमेशा अद्यतन रहेगी। यदि हमें केवल स्थिर सामग्री की आवश्यकता है, तो हमें केवल एक नियमित वेब सर्वर की आवश्यकता है और HTML फ़ाइलें। हमें Java, Maven, या Tomcat की आवश्यकता नहीं है। लेकिन अगर हम गतिशील सामग्री का उपयोग करना चाहते हैं, तो हमें उन सभी उपकरणों की आवश्यकता है। लेकिन अभी के लिए, आइए अपने index.jsp पर वापस
लौटें ।
आइए मानक शीर्षक के अलावा कुछ और इंगित करें, उदाहरण के लिए, "
मेरा सुपर वेब ऐप! " फिर, मुख्य भाग में, "
मैं जीवित हूं! " लिखें हम अपनी परियोजना शुरू करने के लिए लगभग तैयार हैं! दुर्भाग्य से, प्रोग्राम शुरू करने के लिए सामान्य हरा त्रिकोण सक्रिय नहीं है।
इसके बाईं ओर बटन पर क्लिक करें (स्क्रीन पर लाल तीर के साथ इंगित किया गया है) और
कॉन्फ़िगरेशन संपादित करें चुनें ... जो एक विंडो खोलता है जहां हमें कुछ कॉन्फ़िगरेशन जोड़ने के लिए हरे रंग के प्लस चिह्न पर क्लिक करने के लिए आमंत्रित किया जाता है। उस पर क्लिक करें (विंडो के ऊपरी बाएँ कोने में)।
टॉमकैट सर्वर >
स्थानीय चुनें । बहुत सारे विकल्पों के साथ एक विंडो खुलेगी, लेकिन डिफॉल्ट हमें लगभग हर चीज के लिए सूट करता है।
हम अपने कॉन्फ़िगरेशन को मानक
अनाम (सबसे ऊपर) के बजाय एक सुंदर नाम दे सकते हैं। हमें यह भी सत्यापित करने की आवश्यकता है कि आईडीईए ने सफलतापूर्वक हमारे सिस्टम पर टॉमकैट पाया है (आप पहले ही
डाउनलोड और इंस्टॉल कर चुके हैंयह सही?)। यदि यह नहीं मिला (जो संभव नहीं है), तो नीचे तीर दबाएं और चुनें कि यह कहां स्थापित है। या यदि आपके पास एक से अधिक स्थापित हैं, तो एक अलग संस्करण चुनें। मेरे पास केवल एक है और यह पहले से ही स्थापित है। इसलिए यह वैसा ही दिखता है जैसा यह मेरी स्क्रीन पर दिखता है। और खिड़की के बहुत नीचे, हम एक चेतावनी देखते हैं, हमें चेतावनी देते हैं कि अभी तक सर्वर पर तैनाती के लिए कोई कलाकृतियों का संकेत नहीं दिया गया है। इस चेतावनी के दाईं ओर एक बटन है जो सुझाव देता है कि हम इसे ठीक कर दें। हम इसे क्लिक करते हैं और देखते हैं कि आईडिया अपने आप ही सब कुछ खोजने में सक्षम था, जो कुछ भी गायब था उसे बनाया और सभी सेटिंग्स को स्वयं कॉन्फ़िगर किया।
हम देख सकते हैं कि यह हमें
सर्वर टैब से
परिनियोजन टैब पर ले गया,
सर्वर स्टार्टअप पर तैनाती के तहतखंड, और अब हमारे पास तैनात करने के लिए एक आर्टिफैक्ट है।
अप्लाई और ओके पर क्लिक करें। और हम पहली बार देखते हैं कि खिड़की के निचले भाग में हमारे स्थानीय टॉमकैट सर्वर के साथ एक खंड दिखाई देता है, जहां हमारी कलाकृतियां रखी जाएंगी। विंडो के दाईं ओर संबंधित बटन पर क्लिक करके इस अनुभाग को संक्षिप्त करें।
अब हम देखते हैं कि हरा प्रक्षेपण त्रिकोण सक्रिय है।
उन लोगों के लिए जो सब कुछ दोबारा जांचना पसंद करते हैं, आप प्रोजेक्ट सेटिंग्स बटन पर क्लिक कर सकते हैं (लॉन्च बटन के दाईं ओर, लाल तीर से संकेतित), आर्टिफैक्ट्स अनुभाग पर जाएं, और सुनिश्चित करें कि आर्टिफैक्ट वास्तव में बनाया गया था । यह तब तक नहीं था जब तक हमने उस
फिक्स को नहीं दबायाबटन, लेकिन अब सब ठीक है। और यह कॉन्फ़िगरेशन हमें पूरी तरह से सूट करता है। संक्षेप में,
माय-सुपर-प्रोजेक्ट: वार और
माय-सुपर-प्रोजेक्ट: वॉर एक्सप्लोडेड के बीच का अंतर यह है कि
माय-सुपर-प्रोजेक्ट: वॉर में केवल एक
युद्ध फ़ाइल होती है (जो सिर्फ एक संग्रह है) और विस्फोट वाला संस्करण बस
"अनपैक्ड" युद्ध है । और व्यक्तिगत रूप से, यह विकल्प मुझे अधिक सुविधाजनक लगता है, क्योंकि यह आपको सर्वर पर मामूली बदलावों को जल्दी से डीबग करने देता है। संक्षेप में,
आर्टिफैक्ट हमारी परियोजना है, जिसे अभी संकलित किया गया है - और जहां टॉमकैट को इसे सीधे एक्सेस करने की अनुमति देने के लिए एक फ़ोल्डर संरचना बदल दी गई है। यह कुछ ऐसा दिखाई देगा:
अब सब कुछ हमारे प्रोजेक्ट को लॉन्च करने के लिए तैयार है। कीमती हरे लॉन्च बटन को दबाएं और परिणाम का आनंद लें! :)
GO TO FULL VERSION