Feedback Form

Standard JSP Structure: , , ,

Standard JSP Structure – JSP Page का पूरा Structure Explained

Introduction

जब हम Java Web Development की बात करते हैं, तो JSP (Java Server Pages) एक बहुत ही important technology है। JSP का use dynamic web pages बनाने के लिए किया जाता है जो Java code और HTML को एक साथ combine करता है। हर JSP file internally Servlet में convert होती है और फिर server पर execute होती है। लेकिन किसी भी JSP file को सही तरीके से काम करने के लिए उसका एक proper structure होना बहुत ज़रूरी है। इस blog में हम step-by-step समझेंगे कि Standard JSP Structure क्या होता है, उसके parts कौन-कौन से हैं, और उनका role क्या है।

Basic Structure of a JSP Page

एक JSP page की basic structure HTML document जैसी ही होती है। JSP file में HTML tags के साथ Java code भी लिखा जा सकता है। JSP file का extension हमेशा .jsp होता है।

JSP page का basic structure कुछ इस प्रकार होता है:


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>JSP Page Example</title>
</head>
<body>
    <h1>Welcome to JSP</h1>
    <% 
        String name = "Student";
        out.println("Hello " + name);
    %>
</body>
</html>

ऊपर दिए गए example में JSP tags और HTML tags दोनों का इस्तेमाल हुआ है। चलिए अब समझते हैं कि इसके हर हिस्से का क्या मतलब है।

JSP Page Directives

JSP directives वो instructions होती हैं जो JSP container को बताती हैं कि page कैसे process होना चाहिए। Directive हमेशा <%@ ... %> में लिखी जाती हैं। JSP में तीन प्रकार की directives होती हैं:

  • page directive – page से जुड़ी settings बताती है।
  • include directive – किसी external file को JSP में include करती है।
  • taglib directive – custom tag libraries को define करती है।

Example of page directive:


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

यह directive JSP container को बताती है कि language Java है और output HTML format में generate होगा।

Include Directive Example


<%@ include file="header.jsp" %>

इससे एक JSP file दूसरे JSP page में include हो जाती है। जैसे कि header या footer।

Taglib Directive Example


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

यह directive JSTL (Java Standard Tag Library) को enable करता है ताकि हम <c:out> जैसे tags का use कर सकें।

JSP Scripting Elements

JSP में scripting elements वो parts होते हैं जहाँ हम Java code directly लिख सकते हैं। इनके तीन प्रकार हैं:

  • Declaration – variables और methods declare करने के लिए।
  • Scriptlet – logic या processing code लिखने के लिए।
  • Expression – output directly print करने के लिए।

1. Declaration Tag


<%!
   int count = 0;
   public String getMessage() {
       return "Welcome to JSP!";
   }
%>

यह tag class-level पर code declare करता है, जो Servlet class में instance variables और methods की तरह होता है।

2. Scriptlet Tag


<%
   count++;
   out.println("Visitor number: " + count);
%>

Scriptlet tag का use logic और control statements (जैसे if, for, while) लिखने के लिए किया जाता है।

3. Expression Tag


<%= "Hello, " + name %>

यह tag directly output में value print करता है। इसे println() लिखने की जरूरत नहीं होती।

JSP Directives Summary Table

DirectiveSyntaxPurpose
page<%@ page ... %>Page-level settings define करता है
include<%@ include file="file.jsp" %>Another JSP file include करता है
taglib<%@ taglib uri="..." prefix="..." %>Custom tag libraries enable करता है

JSP Comments

JSP में दो तरह के comments होते हैं – HTML comment और JSP comment।

  • HTML Comment: Browser में दिखाई नहीं देते लेकिन source code में रहते हैं। <!-- This is HTML comment -->
  • JSP Comment: Server-side पर ही हट जाते हैं, browser को नहीं भेजे जाते। <%-- This is JSP comment --%>

JSP Implicit Objects

JSP में कुछ predefined objects होते हैं जिन्हें directly use किया जा सकता है। इन्हें implicit objects कहा जाता है। ये objects automatically Servlet container द्वारा create किए जाते हैं।

ObjectTypeDescription
requestHttpServletRequestClient की request handle करता है
responseHttpServletResponseResponse भेजने के लिए
sessionHttpSessionUser session maintain करने के लिए
outJspWriterOutput generate करने के लिए
applicationServletContextApplication-level data share करने के लिए
pageContextPageContextPage-level attributes access करने के लिए
configServletConfigServlet configuration data के लिए
pageObjectCurrent JSP page को refer करता है
exceptionThrowableError handling के लिए

JSP Lifecycle Overview

हर JSP page का एक specific lifecycle होता है, जो Servlet में convert होकर execute होता है। JSP lifecycle के major stages ये हैं:

  • Translation: JSP file को Servlet class में convert किया जाता है।
  • Compilation: Generated Servlet class को compile किया जाता है।
  • Initialization: Servlet का init() method call होता है।
  • Execution: _jspService() method client request process करता है।
  • Destroy: JSP servlet को memory से remove किया जाता है।

ये lifecycle JSP engine automatically manage करता है, इसलिए developer को manually manage करने की जरूरत नहीं होती।

JSP Error Handling

JSP में errors को handle करने के लिए errorPage और isErrorPage attributes का use किया जाता है।

Error Handling Example


<%@ page errorPage="error.jsp" %>

<% int x = 10 / 0; %>

अगर ऊपर code में error आती है, तो request automatically error.jsp page पर redirect हो जाएगी।

Error Page Example


<%@ page isErrorPage="true" %>
<h3>Error Occurred: <%= exception.getMessage() %></h3>

Include Actions in JSP

JSP में include दो तरीके से किया जा सकता है:

  • Static include: <%@ include file="header.jsp" %> – Compile-time include होता है।
  • Dynamic include: <jsp:include page="header.jsp" /> – Runtime include होता है।

JSP Action Tags

JSP action tags XML syntax वाले predefined tags होते हैं जो runtime behavior control करते हैं।

Action TagSyntaxPurpose
<jsp:include><jsp:include page="file.jsp"/>Another JSP file dynamically include करता है
<jsp:forward><jsp:forward page="next.jsp"/>Request को दूसरे resource पर forward करता है
<jsp:param><jsp:param name="user" value="John"/>Parameters पास करने के लिए

JSP Best Practices

  • Business logic को JSP में नहीं बल्कि Servlet या Java classes में रखें।
  • Presentation logic के लिए JSTL और EL (Expression Language) का use करें।
  • Static content (CSS, JS, Images) को अलग रखें।
  • Error handling और validation को हमेशा manage करें।
  • Comments का सही use करें ताकि code readable रहे।

Quick Notes for Exam

  • JSP file का extension हमेशा .jsp होता है।
  • JSP internally Servlet में convert होती है।
  • तीन directives: page, include, taglib।
  • तीन scripting elements: declaration, scriptlet, expression।
  • Implicit objects total 9 होते हैं।
  • errorPage और isErrorPage error handling के लिए use होते हैं।
  • JSP action tags XML format में होते हैं।
  • Static include compile-time होता है, dynamic include runtime पर।
  • Lifecycle methods: init(), _jspService(), destroy()।