क्या मुझे स्प्रिंग या हाइबरनेट या किसी अन्य जावा वेब फ्रेमवर्क को जानने के लिए सर्वलेट्स और जेएसपी की आवश्यकता है? [बन्द है]


17

मैं बहुत से लोगों से पूछ रहा हूं कि जावा वेब डेवलपमेंट कहां से शुरू करना है, मैं पहले से ही कोर जावा (थ्रेडिंग, जेनरिक, कलेक्शंस, जेडीबीसी के साथ थोड़ा अनुभव) जानता हूं, लेकिन मुझे जेएसपी और सर्वलेट्स का पता नहीं है। मैंने PHP के लिए सर्वर-साइड और HTML, CSS, जावास्क्रिप्ट, HTML5 के लिए क्लाइंट पक्ष के लिए कई वेब आधारित अनुप्रयोगों के साथ विकास का अपना उचित हिस्सा किया।

ज्यादातर लोगों ने जो मुझे पूछा कि उन्होंने हाइबरनेट के ठीक आगे कूदने के लिए कहा, जबकि कुछ ने मुझसे कहा कि मुझे सर्वलेट्स और jsps सीखने की जरूरत नहीं है और मुझे तुरंत स्प्रिंग फ्रेमवर्क का अध्ययन करना चाहिए। क्या ये सच है? क्या मुझे हाइबरनेट या स्प्रिंग सीखने के लिए सर्वलेट्स और JSP सीखने की आवश्यकता नहीं है?

उनके सभी जवाबों ने मुझे भ्रमित कर दिया और अब मैं पूरी तरह से खो गया हूं कि मुझे क्या सीखना या अध्ययन करना है। मुझे लगता है कि अगर मैंने JSP और सर्वलेट्स सीखना छोड़ दिया तो मुझे कई महत्वपूर्ण अवधारणाएँ याद आएँगी जो निश्चित रूप से भविष्य में मेरी मदद करेंगे।

तो सवाल यह है कि क्या मुझे स्प्रिंग या हाइबरनेट या किसी अन्य जावा वेब फ्रेमवर्क को जानने के लिए नींव और जेपीएल की आवश्यकता है?


3
ध्यान दें कि हाइबरनेट सिर्फ एक डेटाबेस एब्स्ट्रक्शन लेयर है, इससे ज्यादा कुछ नहीं, और इसका इस्तेमाल किसी वेब एप्लिकेशन के लिए नहीं, बल्कि किसी डेटा स्रोत को किसी भी तरह के जावा ऐप में प्लग करने के लिए किया जा सकता है।
एड ग्रिबेल सेप

1
सर्वलेट्स और जेएसपी के बारे में जानकर दुख नहीं होगा, "हेड फर्स्ट - सर्वलेट्स और जेएसपी" पर एक नज़र डालिए। पढ़ने में आसान समझने के लिए, लेकिन इसमें बहुत कुछ शामिल है।
Jaydee

@ जयदीप मैं वर्तमान में मार्टी हॉल + म्यूरच के सर्वलेट्स और जेएसपी द्वारा कोर सर्वलेट्स और जेएसपी का नेतृत्व कर रहा हूं।
KyelJmD 12

मुझे नहीं लगता कि इस सवाल का पर्याप्त उत्तर दिया गया है। Bear Bibeaultएक प्रसिद्ध डेवलपर और लेखक जोर देते हैं कि कोई भी फ्रेमवर्क सीखने से पहले JSP और सर्वलेट्स सीखें। किसी को यह दिखाने के लिए परवाह है कि आज क्यों लागू हो सकता है या नहीं? यहाँ उनकी पोस्ट है - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

ठीक है, मुझे कुछ उत्तर मिले Bear Bibeault। इन दो लिंक को देखें - coderanch.com/t/633527/Spring/… और coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

जवाबों:


17

यदि आपको HTML, CSS, और JavaScript की अच्छी समझ मिली है, तो आपके पास कई लोगों का पैर है, जो वेब विकास कर रहे हैं। JSP के पीछे की अवधारणा PHP के समान है। झगड़े अलग हैं। एक सर्वलेट जावा कोड का एक हिस्सा है जो अनुरोध करता है। यह वास्तव में है। संपूर्ण मूल स्ट्रट्स ढांचा एकल सर्वलेट था।

मैं टॉमकैट या जेट्टी जोड़ूंगा सीखने के लिए आपकी तकनीकों की सूची में । Tomcat मूल जावा सर्वलेट कंटेनर कार्यान्वयन है और यह पूरी तरह से चित्रित और लोकप्रिय वेब सर्वर के रूप में भी होता है। इसके ऊपर ग्लासफिश बनाया गया है। मैं अपने नए प्रोजेक्ट्स में टॉमकैट के बजाय जेट्टी का उपयोग कर रहा हूं क्योंकि यह सरल, अधिक लचीला और तेज है। जेट्टी को वेब सेवाओं के लिए वेब ऐप के विपरीत बनाने के लिए डिज़ाइन किया गया था। लेकिन एक वेब ऐप बस एक वेब सेवा है जो कच्चे HTTP अनुरोधों के जवाब में HTML परोसती है, इसलिए यदि आप HTTP (जिसे आप कुछ घंटों में महत्वपूर्ण भागों को एक दिन में सीख सकते हैं) को समझ सकते हैं, तो इसके साथ काम करना बहुत आसान है।

आप टॉमकैट और जेएसपी ( यहां ट्यूटोरियल या जेएसएफ) के साथ एक छोटी सी वेब साइट बना सकते हैं, जिसे आप जानते हैं और ट्यूटोरियल के माध्यम से जाने वाले कुछ घंटे खर्च करते हैं। इस तरह से आप शुरू करने से पहले आराम कर सकते हैं। फिर एक javax.servlet.http.HttpServlet बनाते हैं जो लिखते हैं "<html> <head> <title> Hi </ title> </ head> <body> <h1> Hello World </ h1> </ body> </ html > "रिस्पांस ऑब्जेक्ट के लिए, इसे अपने टॉमकैट web.xml में सूचीबद्ध करें और इसे वेब ब्राउज़र से HTTP अनुरोध भेजें। यह कोई रॉकेट साईंस नहीं है। सभी जावा वेब फ्रेमवर्क उन दो बुनियादी गतिविधियों पर भिन्नता हैं।

यदि आप जेट्टी मार्ग पर जाते हैं, तो यह और भी कम संरचित है। इस हैलो जेट्टी का उदाहरण देखें।

यदि आप सिर्फ एक ब्लॉग या मानक ई-कॉमर्स साइट बनाने जा रहे हैं, तो मैं स्क्वायरस्पेस या वर्डप्रेस या कुछ और के साथ शुरू करूँगा । आप शेल्फ से बहुत दूर हो जाते हैं, अब कोई भी कस्टम कोडिंग को सही ठहराने का कोई तरीका नहीं है।

वेब अनुप्रयोगों के लिए जावा की ताकत इसकी विश्वसनीयता, रखरखाव और प्रदर्शन है। PHP या Ruby / Rails सरल है, लेकिन Java जितना आप जाना चाहते हैं, उतना ही पैमाना होगा। मैं जावा वेब फ्रेमवर्क में से किसी से भी नहीं जुड़ा हुआ हूं। जब आपके पास एक बड़े वेब एप्लिकेशन पर काम करने वाले लोगों की एक टीम होती है, या आपको हाइबरनेट का उपयोग करने की आवश्यकता होती है, तो स्प्रिंग जैसा ढांचा वास्तव में चमकता है। वसंत सबसे लोकप्रिय है। जब आपके पास सर्वलेट्स और जेएसपी / जेएसएफ के साथ कुछ परिचित हैं, तो जानें कि स्प्रिंग एक डेटा मॉडल के साथ कैसे संबंध रखता है।

यदि आप एक ब्लॉग या एक सामग्री प्रबंधन प्रणाली बना रहे हैं, तो शायद आप एक NoSQL डेटाबेस के साथ दूर हो सकते हैं। लेकिन मेरा तर्क है कि NoSQL डेटाबेस मूल रूप से रिलेशनल डेटाबेस को बदलने के बजाय फ़ाइल सिस्टम पर एक कैशिंग परत है। मुझे लगता है कि यह दुर्लभ है कि एक प्रोजेक्ट जो एक NoSQL डेटाबेस के लिए एक अच्छा फिट है, जावा में विकसित करने के लिए उपयुक्त होने जा रहा है।

जिन चीज़ों के लिए अभी भी कस्टम, उच्च-प्रदर्शन कोड (जावा, पीएचपी में, जो भी हो) की आवश्यकता होती है, शायद वे एक रिलेशनल / एसक्यूएल डेटाबेस को पावर करने वाले होते हैं। मैं आपको पहले SQL और JDBC (जावा डेटाबेस कनेक्टिविटी) के साथ एक बुनियादी परिचित प्राप्त करने की सलाह दूंगा। जब आप जावा ऑब्जेक्ट्स की दुनिया, और रिलेशनल डेटाबेस और एसक्यूएल की दुनिया के साथ सहज हो जाते हैं, तो आप एबेन / जेपीए (जावा पर्सिस्टेंस एपीआई) / ओआरएम (रिलेशनशिप से संबंधित मैपिंग) सीख सकते हैं जो ऑब्जेक्ट वर्ल्ड को रिलेशनल दुनिया से जोड़ता है।

ORM मुश्किल और अजीब हैं। अधिकांश अंततः संघर्ष के लायक हैं। ईबिन सबसे सरल है जिसे मैं जानता हूं। मैं 12 वर्षों के बाद हाइबरनेट के साथ 8 महीने के बाद इसके साथ अधिक सहज हूं। मैं बहुत से ऐसे लोगों को जानता हूं जो हाइबरनेट के साथ स्प्रिंग का उपयोग करते हैं और उन्हें कोई परेशानी नहीं होती है, या हाइबरनेट क्या है या क्या करता है, इस बारे में विशेष रूप से अवगत रहें, इसलिए मैं कहूंगा कि यदि आप हाइबरनेट का उपयोग करने जा रहे हैं, तो करें वसंत के माध्यम से। शायद सिर्फ इसलिए कि मैंने इसके साथ लंबे समय तक काम किया है, मैं पूरी तरह से हबीबनेट को परीक्षण के लिए हैश मानचित्रों के एक जोड़े के साथ प्रबंधित करने में कामयाब रहा, जो भयानक है (अनुरोध पर उपलब्ध अवलोकन)।

आपके पास पहले से ही सबसे महत्वपूर्ण कौशल हैं। दूसरों को एक समय में एक ले लो और कोशिश मत करो अभिभूत करने के लिए।


क्या आपके पास कोई लिंक या ट्यूटोरियल है जहाँ मैं उक्त तकनीकों को सीखना शुरू कर सकता हूँ? या शायद एक किताब के लिए एक अच्छा सुझाव। अधिकांश अनुप्रयोग जो मैंने बनाया है, SQL सर्वर से एक साधारण MySQl में RDBMS का उपयोग करता है।
KyelJmD

मैंने अपने उत्तर को साफ किया और अनुरोध के अनुसार लिंक जोड़े। हाइबरनेट / जेपीए और विभिन्न वेब फ्रेमवर्क सीखने और मास्टर करने के लिए समय लेते हैं। अन्य तकनीकों में से अधिकांश, आप पहले से ही पर्याप्त जानते हैं कि आपको कुछ घंटों या एक दिन में काम करने में सक्षम होना चाहिए। मुझे स्प्रिंग का पता नहीं है, लेकिन उनकी वेब साइट पर प्रलेखन की जांच करें या अमेज़ॅन पर एक उच्च श्रेणी की पुस्तक प्राप्त करें।
GlenPeterson

मैं यह नहीं देखता कि यह सवाल का जवाब कैसे देता है। Bear Bibeaultएक प्रसिद्ध डेवलपर और लेखक जोर देते हैं कि कोई भी फ्रेमवर्क सीखने से पहले JSP और सर्वलेट्स सीखें। यह दिखाने के लिए कि आज क्यों लागू हो सकता है या नहीं? यहाँ उनकी पोस्ट है - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

@GlenPeterson, "संपूर्ण मूल स्ट्रट्स ढांचा एकल सर्वलेट था।" जिसका अर्थ है? क्या यह हर http कॉल को धीमा नहीं करेगा?
3

@Pacerier हम टॉमकैट में स्ट्रट्स 1 को एक सर्वलेट के रूप में लोड करते थे। स्ट्रट्स कंट्रोलर सर्वलेट विभिन्न थ्रेड्स के लिए अलग-अलग अनुरोध भेजता है उसी तरह एक वेब सर्वर कंटेनर स्तर के बजाय सर्वलेट स्तर पर होगा। मुझे लगता है कि ओवरहेड न्यूनतम था। क्या सबसे धीमा हो जाता है डेटाबेस कॉल है। दूसरा सबसे धीमा, HTML का निर्माण करना और क्लाइंट को वापस करना। उस समय यह गति के लिए स्थिर सामग्री के लिए एक अलग सर्वर का उपयोग करने के लिए लोकप्रिय था, इसलिए इसने काम किया।
GlenPeterson

4

मैं मूल JSP और सर्वलेट्स के बारे में सीखने का सुझाव दूंगा क्योंकि यह आपको उन अवधारणाओं को समझने में मदद करेगा जो स्प्रिंग में सरल हैं। चूंकि आपके पास PHP- आधारित CGI के साथ अनुभव है, इसलिए अधिकांश JSP / सर्वलेट्स उन चीजों को करने के अलग-अलग तरीके होंगे जिनसे आप परिचित हैं इसलिए इसे जल्दी से जाना चाहिए। सबसे मुश्किल चीज जो आप पा सकते हैं, वह दुनिया में अद्वितीय मुहावरों को उठाएगा।

जहाँ तक हाइबरनेट जाता है, मैं MebAlone से सहमत हूँ और कहूँगा कि इसे सीखें यदि आपको आवश्यकता है, लेकिन अगर यह पहले से ही सेट है तो आप 90% कर सकते हैं कि आपको दूसरों को क्या करना है।


2

ऐसा लगता है कि आप जावा के साथ सर्वर साइड वेब डेवलपमेंट सीखना चाहते हैं। कई चौखटे हैं। स्प्रिंग एमवीसी वास्तव में सबसे लोकप्रिय है, यह परिपक्व है, बहुत पूर्ण विशेषताओं वाला है, और यह जानने के लिए एक अच्छा ढांचा है। स्प्रिंग एमवीसी और अन्य जावा वेब फ्रेमवर्क प्रोग्रामर से जावा सर्वलेट एपीआई को सार करते हैं - इसलिए तकनीकी रूप से आपको इसे जानने की आवश्यकता नहीं है। लेकिन मैं मूल बातें सीखने का सुझाव दूंगा - विशेषकर प्रमुख वर्ग। अध्ययन का एक दिन आपको वहां पहुंचना चाहिए।

JSP के लिए, यदि आप PHP जानते हैं तो आप पहले से ही आवश्यक समझते हैं। JSP सर्वर-साइड स्क्रिप्टिंग का जावा संस्करण है।

हाइबरनेट JPA का एक कार्यान्वयन (सबसे लोकप्रिय) है, जो RDBMS के लिए वस्तुओं को बनाए रखने के लिए जावा कल्पना है। NOSQL db (Hadoop, Mongo, आदि) की लोकप्रियता में विस्फोट के साथ, हाइबरनेट 18 महीने पहले की तुलना में एक 'पता होना चाहिए' की तुलना में बहुत कम है। व्यक्तिगत रूप से मैं एक जरूरत के आधार पर भंडारण प्रौद्योगिकियों को सीखता हूं क्योंकि उनमें से बहुत कुछ है, और आप जो उपयोग नहीं करते हैं उसे खो देते हैं।


स्प्रिंग एमवीसी के लिए आप कौन सी पुस्तक सुझा सकते हैं? स्प्रिंग और स्प्रिंग MVC में क्या अंतर है?
KyelJmD

स्प्रिंग एक जावा प्रौद्योगिकी स्टैक है जिसमें कई प्रकार की परियोजनाएँ शामिल हैं। स्प्रिंग एमवीसी सर्वर साइड वेब फ्रेमवर्क है। स्प्रिंग एमवीसी सीखने के लिए स्प्रिंग के ऑनलाइन प्रलेखन और नमूना अनुप्रयोग सबसे अच्छे तरीके हैं।
मेबलाऑन

2

संक्षिप्त उत्तर: नहीं, आपको स्प्रिंग एमवीसी और कई अन्य जावा वेब फ्रेमवर्क के लिए पूर्व-आवश्यकता के रूप में सर्वलेट्स और जेएसपी सीखने की आवश्यकता नहीं है

आइए पहले चित्र से हाइबरनेट करें। यह एक दृढ़ता परत ढांचा है और इसका सर्वलेट्स और जेएसपी से कोई लेना-देना नहीं है।

सर्वलेट जावा लगभग सभी जावा वेब फ्रेमवर्क के लिए निम्नतम स्तर है। यहां तक ​​कि जेएसपी को भी सर्वलेट्स के लिए संकलित किया जाता है।

स्प्रिंग एमवीसी, स्प्रिंग कोर के साथ सहायक एक्सटेंशन और एकीकरण के साथ सर्वलेट एपीआई के शीर्ष पर एक परत है। आप स्प्रिंग MVC के लिए एक प्रतिपादन तंत्र के रूप में JSPs का उपयोग कर सकते हैं। स्प्रिंग एमवीसी ट्यूटोरियल आपको वेब एप्लिकेशन बनाने के लिए जमीन से सभी तरह से ले जाएगा। जैसा कि आप साथ चलते हैं, आप जेएसपी के बारे में जानेंगे, और आप सर्वलेट एपीआई को भी समझने में सक्षम होंगे।


स्प्रिंग एमवीसी सीखने के लिए आप किस पुस्तक या वीडियो ट्यूटोरियल का सुझाव देंगे?
KyelJmD


1
@YuriyZubarev - मैं यह नहीं देखता कि यह सवाल का जवाब कैसे देता है। Bear Bibeaultएक प्रसिद्ध डेवलपर और लेखक जोर देते हैं कि कोई भी फ्रेमवर्क सीखने से पहले JSP और सर्वलेट्स सीखें। यह दिखाने के लिए कि आज क्यों लागू हो सकता है या नहीं? यहाँ उनकी पोस्ट है - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

-1

ऐसा लगता है कि आप एक मुद्दे पर फंस गए हैं जिसका मैंने हाल ही में सामना किया था। मेरा लक्ष्य जावा के साथ सर्वर-साइड विकास सीखना था। इसलिए, मैंने सर्वलेट्स के साथ शुरुआत की, उनके काम को समझा और टॉमकैट सर्वर पर चलने के लिए कुछ सरल प्रोग्राम लिखे। टॉमकैट, एक पूर्व-आवश्यकता है। यदि आप आगे बढ़ना चाहते हैं तो आपको निश्चित रूप से टॉमकैट से परिचित होना चाहिए। जहां तक ​​स्ट्रट्स 2 या स्प्रिंग का संबंध है, स्ट्रट्स 2 और स्प्रिंग सर्वलेट्स पर बनाए गए फ्रेमवर्क हैं, जो कि अगर आप बेसिक्स पर मजबूत होना चाहते हैं तो सर्विसलेट की गहरी समझ होना आवश्यक है। मैंने जावा दिमाग ट्यूटोरियल के साथ शुरुआत की। एक शुरुआत के लिए, ये ट्यूटोरियल अद्भुत हैं। अपने ब्लॉग पर जकोब जेनकोव के कुछ काम वास्तव में भी अद्भुत हैं। जब आप सर्वलेट्स जानते हैं तो स्ट्रट्स 2 और स्प्रिंग सरल हो जाते हैं। जहां तक ​​हाइबरनेट का संबंध है, मैं आपको सुझाव देता हूं कि आप वास्तव में जेडीबीसी से परिचित होने के साथ शुरुआत करें। स्टेप वाइज, सर्वलेट्स, स्ट्रट्स, JDBC, स्प्रिंग, हाइबरनेट। आशा है कि मेरा उत्तर मदद करता है :)।


यह पोस्ट पढ़ना मुश्किल है (पाठ की दीवार)। क्या आप बेहतर आकार में आईएनजी को संपादित करेंगे ?
१६:५५ पर gnat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.