Feedback Form

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 मौजूद नहीं है, तो ये null return करेगा।
  • 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 में पूछे जाते हैं।