JSP (JavaServer Pages): Scripting, EL, JSTL, and Modern Alternatives
JSP (JavaServer Pages): Scripting, EL, JSTL, and Modern Alternatives
JSP (JavaServer Pages) क्या है?
JSP यानी JavaServer Pages एक server-side technology है जो dynamic web pages बनाने के लिए use होती है। इसे Java language में बनाया गया है और ये HTML के साथ मिलकर काम करती है। JSP को आप simple words में “HTML + Java code” का combination कह सकते हैं।
जब भी कोई user browser से request भेजता है, तो JSP page server पर run होता है और उसके output के रूप में HTML content generate करता है, जिसे फिर client को भेज दिया जाता है।
JSP का उपयोग क्यों किया जाता है?
- Dynamic content generate करने के लिए।
- HTML के साथ Java code को mix करके powerful web pages बनाने के लिए।
- Servlets की coding को आसान और readable बनाने के लिए।
JSP कैसे काम करता है?
जब कोई JSP file (.jsp) server पर चलती है, तो web container उसे internally एक Servlet में convert करता है। यानी JSP का असली काम backend में Java Servlet द्वारा किया जाता है।
| Step | Explanation |
|---|---|
| 1 | JSP file को compile किया जाता है। |
| 2 | JSP को Servlet में convert किया जाता है। |
| 3 | Servlet class को load और execute किया जाता है। |
| 4 | Output HTML के रूप में browser को भेजा जाता है। |
JSP Scripting Elements
JSP में scripting elements वो भाग होते हैं जहाँ Java code लिखा जाता है। इन elements की मदद से हम logic को HTML में embed कर सकते हैं। JSP में तीन main scripting elements होते हैं — Scriptlet, Expression, और Declaration।
1. Scriptlet Tag (<% ... %>)
Scriptlet tag के अंदर Java statements लिखे जाते हैं। ये code हर बार JSP page के execution के समय run होता है।
<%
int a = 10;
int b = 20;
out.println("Sum = " + (a + b));
%>
2. Expression Tag (<%= ... %>)
Expression tag का use किसी value को directly output stream में print करने के लिए किया जाता है। इसमें लिखे गए expression को evaluate करके result HTML में दिखाया जाता है।
<%= new java.util.Date() %>
3. Declaration Tag (<%! ... %>)
Declaration tag में variables और methods declare किए जाते हैं जो JSP page के सभी scriptlets और expressions में accessible रहते हैं।
<%! int count = 0;
public int getCount() {
return ++count;
} %>
JSP Directives
Directives JSP page के behaviour को control करते हैं। ये compile-time instructions होती हैं। मुख्य तीन directives हैं: page, include और taglib।
1. Page Directive
Page directive page-level settings define करता है जैसे language, error page, import आदि।
<%@ page language="java" import="java.util.*" contentType="text/html" %>
2. Include Directive
Include directive का उपयोग किसी external file को JSP में include करने के लिए किया जाता है।
<%@ include file="header.jsp" %>
3. Taglib Directive
Taglib directive का use custom tags या JSTL library को JSP में लाने के लिए किया जाता है।
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSP Implicit Objects
JSP में कुछ predefined objects होते हैं जिन्हें implicit objects कहा जाता है। इनका use बिना explicitly declare किए किया जा सकता है।
| Object | Description |
|---|---|
| request | Client की request को handle करता है। |
| response | Server response को represent करता है। |
| session | Client session data को manage करता है। |
| application | Global application scope data को manage करता है। |
| out | Output stream में data भेजने के लिए। |
| config | Servlet configuration information देता है। |
| exception | Exception handling के लिए। |
JSP Expression Language (EL)
Expression Language (EL) JSP में dynamic data access को simplify करता है। इसके ज़रिए हम Java code लिखे बिना objects और attributes को access कर सकते हैं।
EL Syntax
EL में expression को ${} के अंदर लिखा जाता है।
${student.name}
EL का उपयोग
- Request, Session, और Application scope data access करने के लिए।
- Conditional और arithmetic operations करने के लिए।
- JSTL tags के साथ dynamic data binding के लिए।
EL Operators
| Operator | Function |
|---|---|
| + | Addition |
| - | Subtraction |
| * | Multiplication |
| / or div | Division |
| and / or | Logical operations |
| eq / ne | Comparison operations |
JSP Standard Tag Library (JSTL)
JSTL यानी JavaServer Pages Standard Tag Library JSP में commonly used functionality को predefined tags के रूप में provide करती है। इससे JSP code ज्यादा readable और maintainable बनता है।
JSTL की मुख्य Libraries
- Core Tags: Flow control, iteration, variable management।
- Formatting Tags: Numbers, dates, and messages formatting।
- SQL Tags: Database interaction के लिए।
- XML Tags: XML data process करने के लिए।
- Function Tags: String manipulation operations।
Example of JSTL Core Tag
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach var="i" begin="1" end="5">
Number: ${i} <br>
</c:forEach>
Modern Alternatives to JSP
आज के समय में JSP की जगह modern frameworks और technologies का use बढ़ गया है क्योंकि ये fast, secure और scalable हैं। कुछ popular alternatives नीचे दिए गए हैं:
1. JSF (JavaServer Faces)
JSF एक component-based framework है जो reusable UI components provide करता है। ये MVC architecture पर काम करता है और JSP से ज्यादा structured है।
2. Spring Boot (Thymeleaf)
Spring Boot में JSP की बजाय Thymeleaf का use किया जाता है, जो HTML templates के साथ direct integration देता है। ये modern web development के लिए ज्यादा flexible और fast है।
3. Angular / React with Java Backend
आजकल frontend को completely अलग frameworks जैसे Angular या React में बनाया जाता है, और backend के लिए Java REST APIs का use होता है। इससे web application ज्यादा responsive और scalable बनती है।
4. Jakarta EE with Facelets
Jakarta EE में JSP की जगह Facelets का use किया जाता है, जो XML-based templating system है और performance के मामले में बेहतर है।
JSP के Advantages और Disadvantages
Advantages
- HTML और Java को आसानी से combine करता है।
- Servlets से simple और readable है।
- Reusability और maintainability आसान बनती है।
- Session management और data sharing आसान।
Disadvantages
- Design और logic का mix होना maintenance को कठिन बनाता है।
- Modern frameworks के मुकाबले कम secure और slow।
- Large-scale projects के लिए complex structure।
Exam Point of View से JSP
College exams में JSP से जुड़े सवाल अक्सर scripting elements, directives, और JSTL पर आते हैं। आपको syntax और example अच्छे से याद होने चाहिए।
- JSP scripting tags और उनका purpose।
- Expression Language syntax और उपयोग।
- JSTL core tags और उनके practical examples।
- JSP vs Servlets differences।
- Modern alternatives जैसे Thymeleaf, JSF।
Quick JSP Notes (Revision Friendly)
| Topic | Key Point |
|---|---|
| JSP | Server-side page for dynamic web content generation |
| Scriptlet | Java code inside <% %> |
| Expression | Output data using <%= %> |
| Declaration | Declare variables/methods using <%! %> |
| EL | Simplifies access to data: ${object.property} |
| JSTL | Predefined tags for loops, conditions, and DB |
| Modern Alternative | Spring Boot + Thymeleaf, JSF, React |