Reading Request Data: Parameters, Headers, Attributes, and Init Params
Reading Request Data in Servlet: Parameters, Headers, Attributes, and Init Params
जब हम Servlet के साथ web application बनाते हैं, तो सबसे important concept होता है – client से आने वाले data को पढ़ना। यानी जब कोई user form submit करता है, या browser से request भेजता है, तो Servlet को वो data समझना और process करना पड़ता है। आज हम detail में समझेंगे कि Servlet में request data को कैसे read किया जाता है — Parameters, Headers, Attributes और Init Parameters के through।
Request Parameters
सबसे पहले बात करते हैं Request Parameters की। Parameters वो data होते हैं जो user form से या URL query string से भेजता है। जैसे कि कोई login form में username और password submit करता है। Servlet इन values को request.getParameter() method से पढ़ता है।
Example: Reading Form Data
मान लो हमारे पास एक simple HTML form है:
<form action="LoginServlet" method="post">
Username: <input type="text" name="uname"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Login">
</form>
अब Servlet में हम इन values को इस तरह पढ़ सकते हैं:
String username = request.getParameter("uname");
String password = request.getParameter("pass");
out.println("Welcome " + username);
अगर किसी form में multiple values एक ही parameter name से आती हैं (जैसे checkbox), तो हम use करते हैं:
String[] hobbies = request.getParameterValues("hobby");
Key Points:
getParameter()हमेशा String return करता है।- अगर parameter मौजूद नहीं है, तो ये
nullreturn करेगा। - Multiple values के लिए
getParameterValues()का use करो।
Request Headers
Request Headers वो information होती है जो browser या client automatically भेजता है — जैसे कि browser का name, user-agent, content-type, referer आदि।
Servlet में इन्हें request.getHeader() या request.getHeaderNames() method से access किया जाता है।
Example: Reading Header Information
String browser = request.getHeader("User-Agent");
String host = request.getHeader("Host");
out.println("Browser Info: " + browser);
out.println("Host: " + host);
Common HTTP Headers:
| Header Name | Description |
|---|---|
| User-Agent | Client के browser की information बताता है। |
| Host | Server का hostname या domain बताता है। |
| Referer | Previous page का URL बताता है जिससे request आई। |
| Accept | Client कौन से MIME type accept करता है, ये बताता है। |
Headers को Iterate करना:
Enumeration<String> headers = request.getHeaderNames();
while(headers.hasMoreElements()) {
String name = headers.nextElement();
String value = request.getHeader(name);
out.println(name + " = " + value + "<br>");
}
Request Attributes
Attributes temporary data होते हैं जो एक request के भीतर Servlet से दूसरे Servlet या JSP तक भेजे जाते हैं। इन्हें server-side data sharing के लिए use किया जाता है।
Attributes को set और get करने के लिए 3 methods होते हैं:
setAttribute(String name, Object value)getAttribute(String name)removeAttribute(String name)
Example: Passing Data Between Servlets
// First Servlet
request.setAttribute("message", "Welcome to Servlet Tutorial!");
RequestDispatcher rd = request.getRequestDispatcher("second");
rd.forward(request, response);
// Second Servlet
String msg = (String) request.getAttribute("message");
out.println(msg);
Use Case:
- Data को forward करते समय share करने के लिए।
- Temporary result store करने के लिए।
- Multiple servlets में communication के लिए।
Init Parameters
Init Parameters वे parameters होते हैं जो Servlet configuration में define किए जाते हैं और पूरे application के दौरान constant रहते हैं। इन्हें web.xml या annotation के through set किया जाता है।
Example: web.xml में Init Parameters
<web-app>
<servlet>
<servlet-name>DemoServlet</servlet-name>
<servlet-class>com.demo.DemoServlet</servlet-class>
<init-param>
<param-name>developer</param-name>
<param-value>Rider Team</param-value>
</init-param>
</servlet>
</web-app>
Reading Init Parameters in Servlet
public void init() throws ServletException {
String dev = getServletConfig().getInitParameter("developer");
System.out.println("Developed by: " + dev);
}
अगर आप चाहते हैं कि parameter पूरे application के लिए available रहे, तो उसे context-param के रूप में define करें:
<context-param>
<param-name>appName</param-name>
<param-value>Student Portal</param-value>
</context-param>
Reading Context Parameters:
String appName = getServletContext().getInitParameter("appName");
ये data पूरे application में किसी भी Servlet से access किया जा सकता है।
Difference Between Parameters, Headers, Attributes, and Init Params
| Type | Source | Scope | Access Method |
|---|---|---|---|
| Request Parameter | Client (Form / URL) | Per Request | request.getParameter() |
| Request Header | Browser / HTTP Client | Per Request | request.getHeader() |
| Request Attribute | Server (Set by Developer) | Forwarded Request | request.getAttribute() |
| Init Parameter | web.xml or Annotation | Application-wide | getServletConfig().getInitParameter() |
Real-Life Example Scenario
मान लीजिए आपके पास एक Online Exam Application है —
- User जब login करता है, तो username और password को Servlet में Request Parameters के ज़रिए पढ़ा जाता है।
- Browser से आने वाली device info और session details को Headers से track किया जाता है।
- अगर आपको data को दूसरे Servlet में भेजना है, जैसे score calculation वाले Servlet को, तो Attributes का use करते हैं।
- और finally, अगर आप application-level setting जैसे “developer name” या “database name” set करना चाहते हैं, तो वो Init Parameters में define करते हैं।
Key Points Summary
- Request Parameters → Client से आने वाला data।
- Request Headers → Browser या client की meta information।
- Request Attributes → Server-side temporary data sharing।
- Init Parameters → Permanent configuration data।
इन चारों concepts को समझना Servlet development का foundation है। Exam या practical के लिए अगर आप Servlet lifecycle या request processing पढ़ रहे हैं, तो ये topic जरूर तैयार करें क्योंकि ये हमेशा question paper में पूछे जाते हैं।