Advantages of Java for JSP

Advantages of Java for JSP – JSP Pages मूल रूप से Underlying Java Programming LanguageJava Servlet Technology की कई Advantages को Inherit करता है। साथ ही JSP Pages पिछले Section में Discuss किए अनुसार Java के Component Model को भी Integrate करते हुए Web Application Development की सुविधा देता है। इन Advantages के अलावा भी JSP Specification को काफी अच्छी तरह से Design किया गया है, जिसकी वजह से JSP के साथ अन्‍य Language व Specification को आसानी से Integrate करते हुए JPS Pages की Capabilities को Extend किया जा सकता है। जैसे-

Write Once, Run Anywhere

चूंकि JSP Page, Java Programming Language को Utilize करता है, इसलिए JSP Page को Java की बहुत सारी Advantages Automatically प्राप्त हो जाती हैं, जिनके अन्तर्गत सबसे महत्वपूर्ण Advantage, Java के Well-Defined and Accepted API द्वारा Provide किया जाने वाला High Level Portability है। जिसकी वजह से किसी एक Platform के लिए Develop किया गया JSP Page विभिन्न प्रकार के Platforms पर Deploy किया जा सकता है।

उदाहरण के लिए यदि हम Windows System पर किसी JSP Page को Develop करते हैं, तो बिना किसी तरह का Modification किए हुए हम उसी JSP Page को Linux, MacOS आदि के लिए Develop किए गए Java Supported Web Servers पर भी समान रूप से Run कर सकते हैं।

Java API

JSP Pages Develop करते समय एक Developer के रूप में हम किसी भी Java API को Use कर सकते हैं। यानी Core Java हमें Networking, Multithreading, Database Connectivity, Internationalization, Image Manipulation, Object Serialization, Remote Method Invocation, CORBA Access आदि को बिना कोई Extra Configuration किए हुए अपने JSP Page में Use करने की सुविधा Provide करता है। जबकि हम Standard Java Extensions जैसे कि Java Naming and Directory Interface (JNDI)Java Mail API को भी अपने Web Application में किसी Specific Requirement को पूरा करने के लिए Use कर सकते हैं।

इसी तरह से Java Classes, JavaBeansEnterprise JavaBeans Components का प्रयोग करते हुए हम बहुत ही Powerful Web Applications Develop करने की क्षमता प्राप्त करते हैं, जहां JSP हमारे Multi-Tier Application के Presentation Layer को Handle करने का काम करता है।

Security

JSP Pages में हम Java के Strongly Typed Safety को भी उपयोग में लेते हैं। परिणामस्वरूप Type Mismatch की वजह से होने वाले Exceptions को ज्यादा बेहतर तरीके से Handle किया जाना सम्भव हो जाता है। जबकि PHP, Perl, Python जैसी Server Side Scripting Languages, Strongly Typed Safety Provide नहीं करते, जिसकी वजह से Type Related Issues को हमें स्वयं अपने स्तर पर ही Handle करना जरूरी हो जाता है।

साथ ही Java द्वारा Automatic Garbage Collection किए जाने की वजह से Memory Related Issues भी Generate नहीं होते, जो कि C/C++ जैसी Programming Languages में Pointer को Use करने के कारण Generate होते थे।

इसके अलावा Java Application Server भी Java Security Manager को Utilize करते हुए Poorly Written JSP Pages के कारण Web Server के Host System को Damage होने से अथवा Web Server की Performance को प्रभावित करने से Protect करता है।

Scalability

Java Programming LanguageJava Servlet API दोनों किसी JSP Pages में कई Scalability Components Add करते हैं। जब एक बार JSP Page Memory में Load हो जाता है, तो Load होने के बाद उसे Memory में ही Maintain किया जाता है। फिर जब उस Memory में Loaded JSP Page के लिए कोई नया Request Perform होता है, तो Web Server एक Simple Method Invocation करते हुए उस Loaded Page को ही एक नए Thread के माध्‍यम से Serve करते हुए उस नई Request को Response करता है। इस प्रकार से अलग-अलग Threads के माध्‍यम से एक ही JSP Page कई Users को Serve कर दिया जाता है, जो Java Web Application की Performance को काफी Improve कर देता है।

जब JSP को किसी JavaBeans Component Framework में Integrate किया जाता है, तब JSP Page और भी ज्यादा Scalable हो जाते हैं। उदाहरण के लिए JDBC JavaBean, JSP Page से Multiple Requests को Handle कर सकता है जबकि Backend Database पर केवल एक ही Connection Open करता है। साथ ही JSP Page उस स्थिति में और भी ज्यादा Efficient हो जाते हैं, जब हम इसे Enterprise JavaBeans के साथ Integrate करते हैं, जो कि हमारे Web Application में Transaction व Security Services Related Features को भी Add कर देता है।

Extensibility

Extensibility, Java की सबसे मुख्‍य विशेषताओं में से एक है, जो किसी भी अन्‍य Server Side Programming Language की तुलना में Java को ज्यादा बेहतर साबित करती है। स्वयं JSP Specification भी Java Servlet का एक Extension मात्र ही है। जबकि JSP Specification के आधार पर हम Custom Tags भी Use कर सकते हैं और इन Custom Tags को JSP Pages में ठीक उसी तरह से Use कर सकते हैं, जिस तरह से Built-In JSP Tags को Use करते हैं।

इन Custom Tags को Use करके हम हमारी JSP Language को एक Portable Language की तरह Extend कर सकते हैं। सामान्यत: जब हम Business Application Create कर रहे होते हैं, तब Underlying Database पर विभिन्न प्रकार की SQL Queries Fire करने के लिए हम Custom Tags Specify करते हैं, जो कि केवल हमारे Current Application के लिए ही उपयोगी होती हैं, जिससे हमारे Business Application का Internal Model कभी भी Presentation Model के साथ Mix नहीं होता। परिणामस्वरूप हम हमारे Web Application को ज्यादा बेहतर तरीके से Manage करने में सक्षम हो जाते हैं।

JSP और XML (eXtensible Markup Language) के बीच भी काफी Close Relationship होती है, जिसकी वजह से हम एक Properly Formatted JSP Page को एक Valid XML Document के रूप में भी Write कर सकते हैं। JSP Pages में Simple XML Generation के लिए हम Static Template को Use कर सकते हैं। जबकि Dynamic XML Generation के लिए हम JavaBean Components, Enterprise JavaBean Components या Custom Tag Components को भी Use कर सकते हैं। साथ ही XML को Request Data के रूप में भी Receive किया जा सकता है और Directly JavaBean Components, Enterprise JavaBean Components या Custom Tag Components को Send भी किया जा सकता है।

Components

JSP Pages का एक सबसे ज्यादा Powerful Feature ये है कि JSP Pages को JavaBean Component Framework के रूप में Integrate किया जा सकता है। परिणामस्वरूप हम एक Large-Scale, Enterprise Application को Simple Manageable Modules के रूप में Divide करते हुए एक से ज्यादा Developer Team द्वारा अलग-अलग Modules को अलग-अलग Develop करवा सकते हैं और फिर सभी Modules को आसानी से एक Single Application Software के रूप में Assemble कर सकते हैं।

इन Modules के माध्‍यम से हम Presentation Logic को Business Logic से अलग रखने की सुविधा प्राप्त करते हैं साथ ही Modules Development का ये तरीका Static व Dynamic Data को भी Separate रखने की सुविधा Provide करता है।

इस Component-Centric प्रकृति के कारण JSP को Non-Java Programmer भी उसी प्रकार से Utilize करने में सक्षम होता है, जिस प्रकार से उसे कोई Java Programmer Utilize करता है। यानी ये Separation एक Java Programmer को JavaBean को Create करने की Ability Provide करता है और Non-Java Programmer को JSP Tags के माध्‍यम से इन JavaBeans को Use करने की क्षमता Provide करता है।