JSP Page Directive: Configuration and Control
JSP Page Directive: Configuration and Control
JSP Page Directive क्या है?
JSP में Page Directive का use पूरे JSP page के behavior को control करने के लिए किया जाता है। यह directive server को बताता है कि page को कैसे process करना है — जैसे कौन-सा language use हो, कौन-से packages import हों, error handling कैसे हो, session चाहिए या नहीं, इत्यादि। इस directive का syntax होता है:
<%@ page attribute="value" attribute="value" ... %>
Page Directive हमेशा JSP file के top पर लिखी जाती है ताकि पूरे page पर उसका effect रहे। यह developer को JSP page के configuration level settings define करने की सुविधा देती है।
Page Directive का Purpose
JSP Page Directive का main purpose है:
- JSP page के behavior को control करना।
- Compilation settings define करना।
- Error pages और session management handle करना।
- Java class generation के rules बताना।
- Response और encoding settings को manage करना।
Syntax और Structure
JSP Page Directive का syntax fixed format में होता है:
<%@ page attribute="value" %>
अगर एक से ज़्यादा attributes use करने हों, तो उन्हें space से separate किया जाता है:
<%@ page language="java" contentType="text/html" import="java.util.*" %>
Page Directive के Important Attributes
अब बात करते हैं JSP Page Directive के सबसे ज़रूरी attributes की, जो exam point of view से बहुत important हैं।
1. language
यह attribute बताता है कि JSP page किस programming language में लिखा गया है। By default, इसका value "java" होता है।
<%@ page language="java" %>
2. import
Java की तरह JSP में भी हम classes या packages को import कर सकते हैं। import attribute का use इसी के लिए किया जाता है।
<%@ page import="java.util.*, java.io.*" %>
एक से ज़्यादा packages को comma (,) से separate किया जाता है।
3. contentType
यह बताता है कि JSP page कौन-सा MIME type generate करेगा। Usually, इसका value होता है:
<%@ page contentType="text/html;charset=UTF-8" %>
यह setting browser को बताती है कि response HTML format में है और UTF-8 encoding use कर रहा है।
4. pageEncoding
यह JSP file के encoding type को specify करता है। यह developer को बताता है कि JSP file किस character set में written है।
<%@ page pageEncoding="UTF-8" %>
5. session
यह बताता है कि current JSP page को session object चाहिए या नहीं। अगर value true है तो session automatically create होता है। अगर false है, तो session object नहीं बनेगा।
<%@ page session="true" %>
6. buffer
यह attribute output buffer के size को define करता है। By default value होती है 8kb।
<%@ page buffer="16kb" %>
7. autoFlush
यह बताता है कि जब buffer भर जाए, तो क्या automatically flush होना चाहिए या नहीं। अगर true है तो buffer auto flush होगा, नहीं तो exception आएगा।
<%@ page autoFlush="true" %>
8. isThreadSafe
यह बताता है कि JSP page multi-threaded है या नहीं। अगर true है तो multiple users एक साथ page को access कर सकते हैं। अगर false है, तो JSP container synchronized access देता है।
<%@ page isThreadSafe="true" %>
9. errorPage
अगर JSP page में कोई error आती है, तो errorPage attribute define करता है कि error आने पर कौन-सा page open होगा।
<%@ page errorPage="error.jsp" %>
10. isErrorPage
यह बताता है कि current JSP page किसी error को handle करने के लिए बनाया गया है या नहीं। अगर true है तो page exception object को access कर सकता है।
<%@ page isErrorPage="true" %>
11. extends
इस attribute से हम JSP generated servlet को किसी particular Java class से extend कर सकते हैं।
<%@ page extends="com.example.MyServlet" %>
12. info
यह attribute developer को JSP page के बारे में short description देता है। Example:
<%@ page info="This JSP page is used for student registration" %>
13. isELIgnored
यह बताता है कि JSP Expression Language (EL) को ignore करना है या नहीं। अगर true है तो EL expressions evaluate नहीं होंगे।
<%@ page isELIgnored="false" %>
14. isScriptingEnabled
यह बताता है कि JSP में scriptlets, expressions और declarations allow हैं या नहीं। अगर false है तो scripting elements disable हो जाते हैं।
<%@ page isScriptingEnabled="true" %>
Practical Example of JSP Page Directive
नीचे एक simple JSP example दिया गया है जिसमें multiple attributes use किए गए हैं:
<%@ page language="java" contentType="text/html;charset=UTF-8"
import="java.util.*, java.io.*"
errorPage="error.jsp"
isThreadSafe="true"
session="true"
%>
<html>
<body>
<h2>Welcome to JSP Page Directive Example</h2>
<%
Date date = new Date();
out.println("Today's Date: " + date);
%>
</body>
</html>
Page Directive कैसे काम करता है?
जब JSP page compile होता है, तो container उस page को servlet में convert करता है। Page Directive के attributes उसी servlet class के meta information के रूप में add हो जाते हैं। इससे page का behavior compile-time पर ही fix हो जाता है।
उदाहरण के लिए, अगर हमने errorPage define किया है, तो container exception आने पर automatic उस page पर redirect कर देता है। इसलिए directives runtime के बजाय compile-time settings provide करते हैं।
Attributes Summary Table
| Attribute | Description | Default Value |
|---|---|---|
| language | Defines programming language | java |
| contentType | Defines MIME type | text/html |
| import | Imports Java packages | None |
| session | Enables or disables session | true |
| errorPage | Specifies error handling page | None |
| isErrorPage | Marks page as error handler | false |
| buffer | Defines output buffer size | 8kb |
| autoFlush | Flushes buffer automatically | true |
| isThreadSafe | Defines thread safety | true |
| pageEncoding | Defines JSP file encoding | ISO-8859-1 |
Page Directive के Advantages
- पूरे JSP page के behavior को control करता है।
- Session management और error handling आसान बनाता है।
- Java packages को directly import करने की सुविधा देता है।
- Character encoding और MIME type define कर सकते हैं।
- Code readable और manageable बनाता है।
Page Directive की Limitations
- यह settings compile-time पर fix हो जाती हैं, runtime पर change नहीं की जा सकतीं।
- गलत attribute value देने पर compilation error आता है।
- हर JSP page के लिए अलग से directives define करने पड़ते हैं।
Projects में इसका Practical Use
Real-world JSP projects में Page Directive का use हर page में जरूरी settings define करने के लिए किया जाता है। जैसे login.jsp में session disable करना, report.jsp में buffer बढ़ाना, या error.jsp में exception handling enable करना।
<%@ page session="false" buffer="32kb" %>
इस तरह developer को हर page के behavior पर full control मिलता है।
Exam-Oriented Notes
- Directive Syntax: <%@ page attribute="value" %>
- Purpose: JSP page के behavior और configuration को control करना।
- Common Attributes: language, import, session, errorPage, isErrorPage, contentType।
- Error Handling: errorPage और isErrorPage attributes साथ में use होते हैं।
- Thread Safety: isThreadSafe attribute define करता है।
- Encoding: pageEncoding और contentType character sets specify करते हैं।
- Exam Tip: हर attribute के default value और purpose याद रखना जरूरी है।