Directive Elements: page, include, taglib – Usage and Scope
Directive Elements: page, include, taglib – Usage and Scope
JSP (Java Server Pages) में Directive Elements एक बहुत important role निभाते हैं क्योंकि ये पूरे JSP page के behavior को control करते हैं। ये directives server को बताती हैं कि page को कैसे process करना है, कौन से resources include करने हैं, और कौन-सी tag libraries इस्तेमाल करनी हैं। आज हम इस blog में तीन main directives — page, include, और taglib — को detail में समझेंगे, उनके usage और scope के साथ।
What are Directive Elements in JSP?
Directive elements JSP page के instructions होते हैं जो JSP container को बताते हैं कि page को कैसे compile करना है। ये HTML page पर दिखाई नहीं देते लेकिन backend में बहुत powerful होते हैं।
Directive का syntax होता है:
<%@ directive attribute="value" %>
JSP में तीन प्रकार की directives होती हैं:
- page directive
- include directive
- taglib directive
अब इन तीनों को step-by-step समझते हैं।
1. Page Directive
Page directive का use पूरे JSP page की properties को set करने के लिए किया जाता है — जैसे कि language, error page, buffer size, import statements, content type आदि। यह directive server को बताता है कि page को कैसे compile और execute करना है।
Syntax of Page Directive
<%@ page attribute="value" %>
Commonly Used Attributes of Page Directive
| Attribute | Description (व्याख्या) |
|---|---|
| language | यह बताता है कि page किस programming language में लिखा गया है। JSP में default language Java होती है। |
| extends | किस Java class को extend करना है, इसे define करता है। |
| import | Java classes को import करने के लिए use होता है जैसे कि java.util.* |
| contentType | Response का MIME type set करता है जैसे text/html या text/plain। |
| errorPage | यदि किसी JSP में error होती है तो यह बताता है कि कौन-सा page error handle करेगा। |
| isErrorPage | अगर page error handle करने वाला है तो इसका value true set किया जाता है। |
| session | यह control करता है कि JSP page session object को access कर सकता है या नहीं। |
Example of Page Directive
<%@ page language="java" contentType="text/html" import="java.util.*" errorPage="error.jsp" %>
<html>
<body>
<h3>Welcome to JSP Page Directive Example</h3>
</body>
</html>
Scope of Page Directive
Page directive का scope सिर्फ current JSP page तक सीमित होता है। यानी इसकी settings उसी file पर लागू होंगी जहाँ इसे लिखा गया है।
Use Cases (जहाँ काम आता है)
- Importing Java packages जैसे
java.sql.*,java.io.* - Error handling setup करने के लिए
- Session को enable या disable करने के लिए
- Output type या buffer size control करने के लिए
2. Include Directive
Include directive का use किसी दूसरे JSP या HTML file की content को current JSP page में compile-time पर include करने के लिए किया जाता है। इससे code reusability बढ़ती है और maintenance आसान हो जाता है।
Syntax of Include Directive
<%@ include file="filename" %>
Example of Include Directive
<%@ include file="header.jsp" %>
<h2>Main Content of Page</h2>
<%@ include file="footer.jsp" %>
ऊपर के example में header.jsp और footer.jsp दोनों file compile-time पर इस JSP में merge हो जाएँगी।
Scope of Include Directive
Include directive का scope compile-time तक होता है। जब JSP compile होती है, included file की content उस page में permanently add हो जाती है। इसलिए कोई भी change included file में करने के बाद recompile जरूरी होता है।
Advantages of Include Directive
- Reusability बढ़ती है क्योंकि common sections (header, footer, menu) अलग-अलग file में रखे जा सकते हैं।
- Maintenance आसान हो जाता है क्योंकि common content एक जगह से update किया जा सकता है।
- Code duplication कम होता है।
Difference between Include Directive and Include Action
| Include Directive | Include Action |
|---|---|
| Compile-time inclusion करता है। | Runtime inclusion करता है। |
Syntax: <%@ include file="..." %> |
Syntax: <jsp:include page="..." /> |
| Changes के लिए recompile जरूरी है। | Changes runtime पर reflect होते हैं। |
Use Cases
- Header और Footer files को include करने के लिए।
- Navigation bar या sidebar को reuse करने के लिए।
- Common layout बनाने में।
3. Taglib Directive
Taglib directive का use JSP page में custom tag libraries को define करने के लिए किया जाता है। ये JSP को और modular बनाता है क्योंकि हम XML-style custom tags का use करके Java code को HTML से अलग रख सकते हैं।
Syntax of Taglib Directive
<%@ taglib uri="uri_of_library" prefix="prefix_name" %>
Example of Taglib Directive
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<body>
<c:out value="Welcome to JSP Taglib Example!" />
</body>
</html>
Explanation:
ऊपर के example में हमने JSTL (Java Standard Tag Library) का use किया है। यहाँ uri JSTL core library को refer करता है और prefix define करता है कि custom tags को किस नाम से use किया जाएगा।
Scope of Taglib Directive
Taglib directive का scope पूरे JSP page में होता है। एक बार define करने के बाद, page के किसी भी हिस्से में उस prefix के साथ tag use किया जा सकता है।
Advantages of Taglib Directive
- Custom tag creation को support करता है।
- Java code और HTML को अलग रखकर readability बढ़ाता है।
- Reusability और modular programming को बढ़ावा देता है।
- JSTL जैसी libraries का easy integration देता है।
Common JSTL Libraries
| Library | URI | Prefix |
|---|---|---|
| Core | http://java.sun.com/jsp/jstl/core | c |
| Formatting | http://java.sun.com/jsp/jstl/fmt | fmt |
| SQL | http://java.sun.com/jsp/jstl/sql | sql |
| XML | http://java.sun.com/jsp/jstl/xml | x |
Use Cases
- Custom business logic को reusable tags में wrap करने के लिए।
- JSTL tags जैसे
<c:if>,<c:forEach>का use करने के लिए। - Presentation layer को Java code से अलग रखने के लिए।
Comparison Between Page, Include, and Taglib Directives
| Feature | Page Directive | Include Directive | Taglib Directive |
|---|---|---|---|
| Purpose | Page behavior define करता है | File को compile-time पर include करता है | Custom tag libraries को define करता है |
| Scope | Current JSP page | Compile-time inclusion | Entire page |
| Example | <%@ page language="java" %> |
<%@ include file="header.jsp" %> |
<%@ taglib uri="..." prefix="..." %> |
| Reusability | Low | High | Very High |
| Runtime Impact | Compile-time only | Compile-time only | Runtime usage of tags |
Practical Usage and Scope Summary
- Page Directive → जब आपको page-level settings (जैसे language, import, session) control करनी हों।
- Include Directive → जब आपको multiple JSP pages में common layout parts (header/footer) reuse करने हों।
- Taglib Directive → जब आप JSTL या custom tags का use करके code modular बनाना चाहते हों।
इन directives का सही use करने से JSP pages ना सिर्फ efficient बनते हैं बल्कि maintenance और scalability भी आसान हो जाती है। यही कारण है कि JSP और Servlets आधारित web applications में directives की understanding बहुत जरूरी है।