Introduction to JSP API: jakarta.servlet.jsp Package
Introduction to JSP API: jakarta.servlet.jsp Package
जब भी हम JSP (Java Server Pages) की बात करते हैं, तो इसका सबसे core part होता है — JSP API। JSP API developers को वो tools देता है जिनसे वे HTML के साथ Java code को mix करके dynamic web pages बना सकें। इस API का main package है jakarta.servlet.jsp, जो JSP pages को compile, execute और manage करने के लिए classes और interfaces provide करता है।
JSP API Overview
JSP API, Java EE (अब Jakarta EE) platform का हिस्सा है। इसका काम होता है web application को dynamic content serve करने की क्षमता देना। इस API में servlet और JSP दोनों technologies का combination होता है। मतलब – JSP internally servlets पर ही run होता है।
जब कोई JSP file run होती है, तो server सबसे पहले उसे servlet में convert करता है, फिर compile और execute करता है। ये पूरा process jakarta.servlet.jsp package के अंदर defined classes और interfaces के through होता है।
Key Responsibilities of JSP API
- JSP pages को compile और manage करना।
- Java code और HTML के बीच interaction handle करना।
- Session management और request handling support देना।
- Custom tags और tag libraries support करना।
- Dynamic content generation आसान बनाना।
Structure of jakarta.servlet.jsp Package
यह package कई important classes और interfaces contain करता है जो JSP engine को control करते हैं। नीचे दी गई table में कुछ major classes और उनके use बताए गए हैं:
| Class / Interface | Description |
|---|---|
| JspPage | हर JSP page implicitly इस interface को implement करता है। |
| HttpJspPage | HTTP protocol आधारित JSP pages को represent करता है। |
| JspFactory | Request और PageContext objects create करने के लिए factory class है। |
| PageContext | JSP page और Servlet environment के बीच link provide करता है। |
| JspWriter | Client को output भेजने के लिए stream handle करता है। |
| JspEngineInfo | JSP engine से जुड़ी version information provide करता है। |
JspFactory Class
JspFactory class JSP environment में सबसे important role play करती है। यह एक abstract factory class है जो page से जुड़े context, configuration और writer objects generate करती है। Server हर JSP page को process करते समय JspFactory instance का use करता है।
Key Methods of JspFactory
- getPageContext() – PageContext object return करता है।
- releasePageContext() – PageContext को free करता है।
- getEngineInfo() – JSP engine की details देता है।
PageContext pc = JspFactory.getDefaultFactory().getPageContext(
this, request, response, null, true, 8192, true);
ऊपर दिए गए code से पता चलता है कि factory JSP page को process करने के लिए एक नया PageContext create करती है।
PageContext Class
PageContext class JSP page और servlet container के बीच bridge की तरह काम करती है। इसका काम होता है — request, response, session और application objects को access करना। यह implicit objects को भी manage करती है जैसे out, config, page, request आदि।
Important Methods of PageContext
- getRequest() – HttpServletRequest object return करता है।
- getResponse() – HttpServletResponse object return करता है।
- getSession() – Session object access करता है।
- getOut() – JspWriter return करता है।
- findAttribute(String name) – Attribute को सभी scopes में खोजता है।
JspWriter Class
JspWriter output stream को represent करता है जो client browser में content भेजता है। यह java.io.Writer class को extend करता है और buffering support देता है। JSP में “out” object इसी JspWriter class का instance होता है।
Example:
<%
out.println("Welcome to JSP!");
%>
यह code browser में text print करने का simplest तरीका है। JspWriter buffering की मदद से performance को बेहतर बनाता है ताकि data efficient तरीके से भेजा जा सके।
JspPage and HttpJspPage Interfaces
हर JSP file implicitly JspPage और HttpJspPage interfaces को implement करती है। इन interfaces में वो methods होते हैं जो JSP lifecycle को control करते हैं।
JSP Lifecycle Methods
| Method | Description |
|---|---|
| jspInit() | Page initialization के लिए run होता है (once per instance)। |
| _jspService() | हर request पर run होता है। |
| jspDestroy() | Page unload होने से पहले cleanup करता है। |
public void jspInit() {
// initialization code
}
public void _jspService(HttpServletRequest req, HttpServletResponse res) {
// main logic
}
public void jspDestroy() {
// resource cleanup
}
Implicit Objects in JSP
JSP में कुछ objects automatically available होते हैं जिन्हें “Implicit Objects” कहा जाता है। ये objects JSP API के अंदर defined classes और methods से आते हैं और page context को simplify करते हैं।
Common Implicit Objects
- request – Client request information store करता है।
- response – Output भेजने के लिए use होता है।
- out – JspWriter का instance, output print करने के लिए।
- session – User session manage करता है।
- application – ServletContext access करता है।
- config – Page configuration details रखता है।
- page – Current JSP page का reference देता है।
- exception – Exception handling के लिए।
JspEngineInfo Class
JspEngineInfo class JSP engine के version और configuration details provide करती है। यह class mainly server information और JSP engine compatibility check के लिए use होती है।
Example:
JspEngineInfo info = JspFactory.getDefaultFactory().getEngineInfo();
out.println("JSP Engine Version: " + info.getSpecificationVersion());
यह code JSP engine का version browser में display करेगा। Exam में ये concept अक्सर पूछा जाता है क्योंकि ये JSP architecture का core part है।
Tag Libraries and JSP API
JSP API का एक और powerful feature है — Custom Tag Libraries। इनके जरिए developers repetitive code को reusable tags में बदल सकते हैं। ये tags XML-style syntax में लिखे जाते हैं और backend में Java classes से जुड़े होते हैं।
Example of Tag Library Usage
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:out value="Hello JSTL!" />
यह code JSTL (JSP Standard Tag Library) का example है, जो dynamic content generate करने के लिए predefined tags provide करता है।
Exam-Oriented Notes
- JSP API का main package है jakarta.servlet.jsp।
- हर JSP internally एक servlet में convert होता है।
- JspFactory class PageContext और configuration handle करती है।
- PageContext implicit objects को access करने में मदद करता है।
- JspWriter output stream को manage करता है।
- jspInit(), _jspService() और jspDestroy() lifecycle methods हैं।
- Implicit objects exam में frequently पूछे जाते हैं।
- Tag Libraries JSP API का reusable component feature है।
- JSP engine information JspEngineInfo class से मिलती है।
- JSP API dynamic content generation के लिए servlet technology पर आधारित है।
Practical Implementation Example
<%@ page import="jakarta.servlet.jsp.*" %>
<%
JspFactory factory = JspFactory.getDefaultFactory();
PageContext context = factory.getPageContext(this, request, response, null, true, 8192, true);
out.println("JSP Page running successfully!");
factory.releasePageContext(context);
%>
यह simple example बताता है कि कैसे JSP API की help से server dynamic content process करता है। PageContext object यहां JSP page के environment को control कर रहा है।
Summary Points (Quick Revision)
- Primary Package: jakarta.servlet.jsp
- Main Interfaces: JspPage, HttpJspPage
- Main Classes: JspFactory, PageContext, JspWriter, JspEngineInfo
- Lifecycle: jspInit() → _jspService() → jspDestroy()
- Implicit Objects: request, response, out, session, application, config, page, exception
- JSP API Purpose: Dynamic content generation और servlet integration