Safe Usage: Avoiding Session Creation, Buffer Management
JSP ServletConfig और इसका Use Explained in Hindi
ServletConfig क्या है?
ServletConfig एक interface है जो किसी specific servlet की configuration information को represent करता है। यह interface servlet को उसके initialization parameters provide करता है जो web.xml या annotation के ज़रिए define किए जाते हैं।
Simple words में कहें तो ServletConfig वो object है जो servlet container द्वारा servlet को तब दिया जाता है जब servlet पहली बार load होती है। इसके ज़रिए servlet को initialization से जुड़ी जानकारी मिलती है।
ServletConfig क्यों use किया जाता है?
हर servlet को कुछ initialization values चाहिए होती हैं जैसे कि database connection string, email server details, या कोई API key। इन्हें हम web.xml में define करते हैं और servlet इन values को ServletConfig के माध्यम से access करता है।
इससे फायदा ये होता है कि आपको code में बार-बार values change करने की जरूरत नहीं पड़ती — बस web.xml में update करना काफी होता है।
ServletConfig के main uses:
- Servlet के initialization parameters को access करना।
- Servlet context (application level information) को indirectly access करना।
- Configuration data को centralized manage करना।
ServletConfig कब create होता है?
जब servlet container किसी servlet को पहली बार load करता है, तो वो उसके लिए एक ServletConfig object create करता है और servlet के init() method में pass करता है।
ServletConfig object servlet के पूरे lifetime में constant रहता है और जब servlet unload होती है तब destroy हो जाता है।
ServletConfig के Important Methods
ServletConfig interface में चार main methods होते हैं जो servlet configuration से related information provide करते हैं।
| Method | Description |
|---|---|
String getInitParameter(String name) |
दिए गए parameter name के लिए उसका value return करता है। |
Enumeration getInitParameterNames() |
सभी initialization parameter names की list देता है। |
ServletContext getServletContext() |
ServletContext object को return करता है ताकि पूरे web application का context access किया जा सके। |
String getServletName() |
Current servlet का नाम return करता है। |
ServletConfig Example (Practical Example)
नीचे एक simple example दिया गया है जो दिखाता है कि ServletConfig कैसे काम करता है:
Step 1: web.xml में Initialization Parameters Define करना
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
<init-param>
<param-name>email</param-name>
<param-value>support@example.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>
</web-app>
Step 2: Servlet File में ServletConfig Use करना
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
ServletConfig config;
public void init(ServletConfig config) {
this.config = config;
}
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String email = config.getInitParameter("email");
out.println("<h2>Support Email: " + email + "</h2>");
}
}
जब user /config URL को hit करेगा, तो servlet ServletConfig से email parameter पढ़ेगा और उसे browser पर display करेगा।
ServletConfig vs ServletContext
बहुत से students को इन दोनों में confusion होता है। चलिए इसे आसान शब्दों में समझते हैं।
| Feature | ServletConfig | ServletContext |
|---|---|---|
| Scope | एक specific servlet तक सीमित | पूरे web application के लिए common |
| Parameters Defined | <servlet> टैग के अंदर |
<context-param> टैग में |
| Purpose | Servlet-specific initialization data provide करता है | Application-wide data share करता है |
| Access Method | getInitParameter() |
getAttribute() / setAttribute() |
Real-Life Example Understanding
मान लीजिए आपके पास एक ई-कॉमर्स servlet है जो order process करता है। हर servlet के लिए support email अलग-अलग हो सकता है। ऐसे में आप हर servlet के लिए ServletConfig में अलग-अलग email define कर सकते हैं।
लेकिन अगर आपको पूरे website के लिए एक common configuration चाहिए — जैसे database URL — तो वो ServletContext में define करना बेहतर है।
ServletConfig के Benefits
- Servlet को dynamic initialization values provide करता है।
- Configuration centralized होने से maintenance आसान होता है।
- Values को बार-बार code में hardcode करने की जरूरत नहीं।
- Application को flexible और reusable बनाता है।
ServletConfig की Limitations
- हर servlet के लिए अलग-अलग config define करनी पड़ती है।
- Common data share नहीं किया जा सकता (इसके लिए ServletContext चाहिए)।
- Runtime में parameters change नहीं किए जा सकते।
Exam और Interview Point of View
College exams या viva में ServletConfig से जुड़े कुछ common questions पूछे जाते हैं। नीचे कुछ important questions दिए गए हैं जिन्हें याद रखना चाहिए:
- ServletConfig क्या होता है?
- ServletConfig और ServletContext में क्या अंतर है?
- ServletConfig कब create होता है?
- ServletConfig के main methods कौन-कौन से हैं?
- ServletConfig को कैसे access करते हैं?
इन questions के जवाब अगर आपको अच्छे से आते हैं, तो JSP/Servlet से जुड़े theoretical और practical दोनों parts में अच्छे marks मिल सकते हैं।
Important Notes for Students
- ServletConfig object को container manage करता है — manually create नहीं किया जाता।
init(ServletConfig)method केवल एक बार call होता है।- आप ServletConfig के माध्यम से ServletContext को access कर सकते हैं।
- web.xml में defined init parameters case-sensitive होते हैं।
Quick Revision Key Points
- ServletConfig = Servlet-specific configuration object।
- Define parameters =
<init-param>टैग में। - Access values =
getInitParameter()से। - Scope = केवल current servlet तक।
- Common data चाहिए तो ServletContext use करें।
Exam-Ready Summary Notes
Definition: ServletConfig एक interface है जो servlet को initialization parameters provide करता है।
Package: javax.servlet
Lifecycle: Servlet load होते समय create होता है और servlet destroy होते समय खत्म।
Methods: getInitParameter(), getInitParameterNames(), getServletContext(), getServletName()
Scope: केवल एक servlet तक सीमित।
Used In: Initialization data को servlet में pass करने के लिए।
Example: Database username, email ID, API keys इत्यादि define करने में।