Java Servlets Advantages – Working of Java Servlets

Java Servlets Advantages – Java Server Pages की Working को उसी स्थिति में ठीक से समझा जा सकता है, जबकि इसकी Underlying Technology को ठीक से समझा गया हो और JSP की Underlying Technology Java Servlets है जिसे सामान्यत: केवल Servlets के नाम से भी Refer किया जाता है।

Servlets वे Java Classes होती हैं, जो Web Server की Capabilities को Extend करते हुए Webpages को Dynamically Generate करने की सुविधा प्रदान करती हैं।

Web Server में Servlet Engine नाम का एक Run-Time Environment होता है जो Java Servlets को Load व Unload करने का काम करता है तथा Web Server को इस बात का Instructions देता है कि कब User के Client Web Browser द्वारा आने वाली Request को Process करने के लिए किसी Specific Servlet पर भेजना है और कब Servlet द्वारा Generate होने वाले Resultant Output को Client Web Browser पर Response के रूप में Return करना है।

चूंकि Java Servlets को सर्वप्रथम 1997 में Release किया गया था, इसलिए Servlets को तब से ही Server Side Java Programming पर आधारित Web Development के लिए मुख्‍य Environment की तरह Use किया जा रहा है।

Java Servlets Advantages

Dynamic Web Development हेतु Java Servlets मूलत: निम्न Advantages Provide करता है-

Performance

जैसाकि हमने पहले भी Discuss किया कि CGI जैसा पुरानी Technologies में प्रत्येक Incoming Request को Handle करने के लिए Web Server द्वारा Host Computer पर एक नया Process Start किया जाता था और क्‍योंकि उस समय Internet को आज की तुलना में काफी कम लोग Use किया करते थे, इसलिए उस समय की Websites पर कोई विशेष Traffic न होने की वजह से प्रत्येक Request को Fulfill करने हेतु Create किया जाने वाला नया Process, Host Computer पर कोई विशेष प्रभाव नहीं डालता था।

लेकिन जब Internet तक अधिक लोगों की पहुंच होने लगी और Websites पर Traffic बढ़ने लगा, तो प्रत्येक Request को Handle करने के लिए Host Computer पर एक नया Process Create होने की वजह से होने वाली परेशानियों का पता चला। परिणामस्वरूप Sun Microsystems द्वारा इसके Solution के रूप में Servlets तकनीक को Release किया गया।

Servlets तकनीक के अन्तर्गत जब भी Web Server पर कोई Request आता था, उस Request को Handle करने के लिए Web Server द्वारा Host Computer पर एक नया Process Create करने के स्‍थान पर एक नया Thread Create किया जाता था और ये Thread, Host Computer की Memory में हमेंशा के लिए Stored हो जाता था।

परिणामस्‍वरूप उस समान Servlet के लिए जब कोई दूसरा Request Perform होता था, तो उस दूसरी Request को Handle करने के लिए Servlet को फिर से Memory में Load करने की जरूरत नहीं होती थी क्‍योंकि वह Servlet Memory में पहले से Exist रहता था। इसी वजह से CGI की तुलना में Java Servlet API आधारित Web Applications की Performance तुलनात्मक रूप से काफी अधिक अच्‍छी होती थी।

Simplicity

Client Side Java Applets, Web Browser द्वारा Provide किए जाने वाले एक Virtual Machine में Run होते थे, जो कि Different Web Browsers व Different Platforms पर Run होते समय Compatibility Issues पैदा करते थे, जिससे Applet द्वारा Provide की जाने वाली Functionalities काफी Limited व Complex होती थीं क्‍योंकि Java Applets तभी Properly Run हो सकते थे, जबकि वे किसी Java Enabled Web Server पर Run हों और Different Operating System Platforms पर Run होने वाले Different Web Browsers, Different Capabilities व Functionalities के साथ काम करते थे।

लेकिन Servlets का प्रयोग करने पर Client Side Java Applets के कारण पैदा होने वाली इस तरह की कोई Limitation या Complexity नहीं होती थी क्‍योंकि Servlets हमेंशा Server Computer के Virtual Environment द्वारा Control होते थे और Servlets द्वारा Return होने वाले Response पूरी तरह से HTML Documents होते थे, जिन्हें Client Web Server में Response के रूप में Send होने के लिए केवल Basic HTTP Protocol की ही जरूरत होती थी।

अत: Servlets आधारित Web Applications नए व पुराने किसी भी प्रकार के Web Browsers पर समान रूप से Run हो सकते थे क्‍योंकि सभी Web Browsers समान Basic HTTP Protocol पर ही आधारित होते थे।

HTTP Sessions

हालांकि HTTP Servers में समान Client द्वारा Perform की गई Multiple Requests को Remember रखते हुए विभिन्न Clients को Uniquely Identify करने जैसा कोई Built-In Capability नहीं था, लेकिन Servlet API HttpSession Class के माध्‍यम से समान Client द्वारा Perform की जाने वाली Multiple Requests को Uniquely Identify कर सकता था।

Access to Java Technology

चूंकि Servlets वास्तव में जावा तकनीक पर आधारित Java Applications होते थे, इसलिए Java Programming Language व विभिन्न Java Classes Libraries को Servlets Program Develop करने हेतु Use किया जा सकता था।

इसका मतलब ये था कि कोई भी Java Developer जिसने Java का प्रयोग करते हुए Desktop Application Develop किया हो, वो बड़ी ही आसानी से Java आधारित Web Applications Develop करना सीख सकता था।

JSP Pages में Java Servlets के ये सभी Advantages Inherit होते हैं क्‍योंकि JSP Pages वास्तव में Internally Parse होकर Java Servlets में ही Translate होते हैं। इसलिए JSP API को हम एक प्रकार से Java Servlet API के Top पर Run होने वाला API भी मान सकते हैं और इसीलिए JSP API को तभी ठीक से समझा व उपयोग में लिया जा सकता है, जबकि पहले Java Servlet API की Working व इसके विभिन्न Elements को ठीक से समझा गया हो।

HTTP Request Response Model
Java Servlet Lifecycle