मुझे पोर्टल्स और पोर्टल्स पर काम करने के लिए कहा जाता है।
मैं एक पोर्टलेट और एक सर्वलेट के बीच अंतर जानना चाहता हूं?
एक सर्वलेट से पोर्टलेट कैसे / कहाँ भिन्न होता है (कार्यात्मक रूप से हो सकता है)?
जवाबों:
पोर्टल JSR-168 मानक का हिस्सा है जो पोर्टल कंटेनर और घटकों को नियंत्रित करता है। यह वेब कंटेनर (और सर्वलेट) के लिए मानकों से भिन्न है। यद्यपि इन दो मानकों के बीच निश्चित रूप से मजबूत समानताएं हैं, वे कंटेनर, एपीआई, जीवन चक्र, कॉन्फ़िगरेशन, परिनियोजन, आदि में भिन्न हैं।
पोर्टलेट बनाम सर्वलेट के बीच मुख्य अंतर यह हो सकता है कि सर्वलेट हमेशा एक ही प्रकार की कार्रवाई के लिए प्रतिक्रिया करता है - अनुरोध , पोर्टलेट (अपने जीवन चक्र की प्रकृति और मजबूत कंटेनर बाइंडिंग के कारण) को दो प्रकार के कार्यों का जवाब देना पड़ता है: प्रस्तुत करना और अनुरोध करना । बेशक इसमें कुछ और भी हो लेकिन मैंने पोर्टल विकास का अध्ययन करने के दौरान इसे दोनों के बीच मुख्य अंतर के रूप में पाया।
स्रोत से बढ़ाया : सर्वलेट्स बनाम पोर्टलेट्स
समानताएँ
सर्वलेट्स और पोर्टलेट्स वेब आधारित घटक हैं जो उनके कार्यान्वयन के लिए जावा का उपयोग करते हैं।
पोर्टलेट का प्रबंधन पोर्टलेट कंटेनर द्वारा किया जाता है जैसे सर्वलेट कंटेनर द्वारा प्रबंधित किया जाता है।
पोर्टल्स और सर्वलेट्स द्वारा स्थिर और गतिशील दोनों सामग्री उत्पन्न की जा सकती है।
पोर्टलेट्स और सर्वलेट्स का जीवन चक्र कंटेनर द्वारा नियंत्रित किया जाता है
क्लाइंट / सर्वर मॉडल का उपयोग सर्वलेट्स और पोर्टलेट्स दोनों के लिए किया जाता है
पैकेजिंग और परिनियोजन अनिवार्य रूप से समान, WAR / EAR हैं।
अनुप्रयोग सत्र सर्वलेट और पोर्टलेट कंटेनर दोनों में मौजूद है। यह रेंडर चरण से एक्शन चरण (या किसी भी निचले चरणों) में डेटा (क्रूड इंटर-पोर्टलेट कम्युनिकेशन) को पोर्ट्रेट कंटेनरों में साझा करने के तरीकों में से एक है।
Servlets और Portlets दोनों समान सर्वर / VM वातावरण का उपयोग करते हैं जो इसका समर्थन करते हैं। हालाँकि, पोर्ट टिक के मामले में कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता हो सकती है ताकि यह टिक हो सके
बिल्ड / DI टूल्स दोनों के लिए समान हैं - एंट, मेवेन, ग्रैडल आदि सभी समर्थित हैं। ज्यादातर :) - यह Liferay 7 के साथ थोड़ा बदल गया है।
असमानताओं को बताया
सर्वलेट्स संपूर्ण वेब पेजों को रेंडर कर सकते हैं, जबकि पोर्टलेट HTML अंशों को प्रस्तुत करते हैं। ये टुकड़े पोर्टल द्वारा एक संपूर्ण वेब पेज में एकत्र किए गए हैं।
जेएसआर 168 पोर्टल्स की सामग्री प्रकार केवल cHTML, XHTML, WML हो सकती है। यह अन्य सामग्री प्रकारों का समर्थन नहीं करता है।
पोर्टलेट्स को HTML कोड जेनरेट करने की अनुमति नहीं है जिसमें बॉडी, फ्रेम, फ्रेमसेट, हेड, एचटीएमएल या शीर्षक जैसे टैग शामिल हैं।
एक सर्वलेट के विपरीत एक पोर्टलेट में URL संलग्न नहीं है, इसलिए इसे सीधे एक्सेस नहीं किया जा सकता है। एक्सेस केवल पोर्टल पेज के माध्यम से होता है जो पोर्टलेट रखता है।
पोर्टल्स को नियंत्रण के साथ इसकी विंडो स्टेट्स या पोर्टलेट मोड्स में हेरफेर करने के लिए प्रदान किया जा सकता है।
एक ही पोर्टल के कई उदाहरणों को एक ही पृष्ठ पर रखा जा सकता है।
पोर्टल्स लगातार कॉन्फ़िगरेशन और अनुकूलन, प्रोफ़ाइल जानकारी का समर्थन करते हैं।
पोर्टल्स में दो प्रकार के अनुरोध हो सकते हैं। अनुरोध और कार्रवाई अनुरोध प्रस्तुत करें।
पोर्ट्स में सत्र के भीतर दो स्कोप हैं; इंट्रा पोर्टलेट कम्युनिकेशन के लिए पोर्टलेट्स और पोर्टलेट स्कोप के पार संचार के लिए एप्लिकेशन स्कोप।
पोर्टलेट प्रतिक्रिया के वर्ण सेट एन्कोडिंग को सेट नहीं कर सकता है और न ही यह HTTP प्रतिक्रिया हेडर सेट कर सकता है।
पोर्टल के पास URL का अनुरोध करने की पहुंच नहीं है। इसलिए यह URL से संलग्न क्वेरी पैरामीटर तक नहीं पहुँच सकता है। पोर्टसेट कुकीज़ सेट नहीं कर सकते।
Portlet एपीआई की विशिष्ट तरीके हैं
doView()
,doEdit()
,doHelp()
औरprocessAction()
सर्वलेट के हैं, जबकिservice()
,doPost()
,doGet()
।सर्वलेट विनिर्देश - JSR 369 (सर्वलेट 4.0), JSR 340 (सर्वलेट 3.1), JSR 315 (सर्वलेट 3.0), JSR 154 (सर्वलेट 2.5 और 2.4)। पोर्टलेट स्पेसिफिकेशन्स - JSR 168 (पोर्टलेट स्पेस v1.0), JSR 286 (पोर्टलेट स्पेस v2.0), JSR 362 (पोर्टलेट स्पेस v3.0)
पोर्टलेट्स की तैनाती में एक सर्वलेट एप्लिकेशन की तुलना में अलग दृष्टिकोण शामिल है । कुछ प्रदाता (Liferay / Alfresco / WebSphere) ऐसे सर्वर को फिर से शुरू करने की आवश्यकता के बिना पोर्टलेट्स के हॉट-परिनियोजन का समर्थन करते हैं जो सर्वलेट्स के मामले में OSGi जैसे विशेष पुस्तकालयों का उपयोग किए बिना अनुप्रयोग को संशोधित किए बिना संभव नहीं है।
संपादित करें (टिप्पणियों से)
पोर्टलेट कंटेनर एक सर्वलेट कंटेनर पर बनाया गया है। तो अंततः यह कहा जा सकता है कि पोर्टलेट एक सर्वलेट कंटेनर पर चलता है। लेकिन एप्लिकेशन विकसित करते समय, हम एक सर्वलेट कंटेनर को सर्वलेट / जावा ईई कंटेनर से अलग देखते हैं।
पोर्टलेट्स और सर्वलेट्स दोनों एक http अनुरोध प्राप्त करते हैं और एक प्रतिक्रिया देते हैं, जो कि कुछ HTML है जो ब्राउज़र द्वारा प्रदान किया जा सकता है। एक पोर्टल "पोर्टल" के संदर्भ में उपयोग किया जाता है, यह विचार कि उपयोगकर्ता द्वारा देखे गए एक पृष्ठ में बहुत सारे भाग हैं, टाइलें सोचें, प्रत्येक एक अलग पोर्टल से आ रहा है।
अब, आप सामान्य सेवा से "टाइल की गई" प्रभाव प्राप्त कर सकते हैं (देखें स्ट्रट्स + टाइल्स देखें कि कैसे) पोर्टलेट्स से अतिरिक्त बिट यह है कि पोर्टल द्वारा प्रदान किए गए अधिक समृद्ध वातावरण में पोर्टलेट्स अतिरिक्त एपीआई प्रदान किए जाते हैं ताकि किसी भी पोर्टलेट द्वारा जो प्रदर्शित किया जाता है उसे अलग-अलग उपयोगकर्ताओं द्वारा अपनी प्राथमिकताओं में कॉन्फ़िगर किया जा सकता है, और पोरलेट एक दूसरे के साथ संवाद कर सकते हैं - एक में एक बटन दबाएं, एक दूसरे में कुछ होता है।
सर्वलेट्स में जावा डेफिनिशन (एप्लिकेशन जो HTTP GET / POST रिक्वेस्ट को हैंडल करते हैं) है, जबकि पोर्टलेट में यूजर इंटरफेस परिभाषा है। घटक विन्डोज़ विस्टा विजेट या स्टैकओवरफ्लो में उपयोग किए जाने वाले बहुत सारे घटकों के समान एक विशिष्ट कार्य करता है। जरूरी नहीं कि वे सर्वर साइड पर सर्वलेट द्वारा समर्थित हों। लेकिन जावा के साथ पोर्टलेट मानक विकसित किया गया था। ओ'रेली का एक अच्छा ट्यूटोरियल है ।
अनिवार्य रूप से, सर्वलेट्स वह सामग्री प्रदान करते हैं जो आम तौर पर एक ब्राउज़र में पूरे पृष्ठ को लेता है (जब तक कि आप फ्रेम का उपयोग नहीं कर रहे हैं), और पोर्टलेट ऐसी सामग्री प्रदान करते हैं जो एक खिड़की से लिपटी होती है। पोर्टलेट्स के साथ, आप एक-दूसरे के साथ कई पोर्टल्स को एक-दूसरे के साथ रख सकते हैं और हर एक सामग्री और कार्यक्षमता प्रदान कर सकता है जो दूसरे से अलग है। एक पोर्टलेट एक प्रकार के एप्लिकेशन के लिए संपूर्ण इंटरैक्शन प्रदान कर सकता है, जबकि दूसरा पोर्टलेट दूसरे प्रकार के एप्लिकेशन के लिए सामग्री प्रदान कर सकता है। पोर्टल कुछ घर को कार्यक्षमता प्रदान कर सकता है और एक पृष्ठ पर सभी पोर्टलेट्स में प्रविष्टि का एकल बिंदु सुरक्षित कर सकता है। उन दोनों के बीच विशेष (समानता / अंतर) के लिए, कृपया पढ़ना जारी रखें। यहाँ कुछ समानताएँ हैं: