Feedback Form

Introduction: The Complete HTTP Cycle in Java Servlets

The Complete HTTP Cycle in Java Servlets

जब भी हम web application में client और server के बीच communication की बात करते हैं, तो सबसे ज़रूरी concept होता है — HTTP Cycle। Java Servlets इस communication process को handle करने के लिए powerful mechanism provide करते हैं। इस article में हम step-by-step समझेंगे कि HTTP Cycle in Java Servlets कैसे काम करता है, कौन-कौन से stages होते हैं और exam point of view से कौन से topics important हैं।

Introduction to HTTP Cycle

HTTP (HyperText Transfer Protocol) एक request-response based communication protocol है जो client (जैसे browser) और server (जैसे web server) के बीच data exchange करता है। जब कोई user browser में URL type करता है, तो browser एक HTTP request भेजता है और server एक HTTP response लौटाता है। यही process बार-बार दोहराई जाती है जिसे हम कहते हैं — HTTP Cycle

Role of Servlet in HTTP Cycle

Java Servlets server-side components होते हैं जो HTTP request को process करके dynamic content generate करते हैं। Servlet container (जैसे Apache Tomcat) इन servlets को run करता है और HTTP request-response cycle को manage करता है।

Servlet as a Middle Layer

Servlet एक middle layer की तरह काम करता है — यह client से आने वाली request को लेता है, उसे process करता है (database से data निकाल सकता है या calculations कर सकता है) और फिर HTML response बनाकर client को भेज देता है।

Steps of HTTP Cycle in Servlets

Java Servlets के HTTP cycle को समझने के लिए इसे 6 main steps में divide किया जा सकता है:

  • Step 1: Client (Browser) sends an HTTP Request.
  • Step 2: Web Server receives the Request.
  • Step 3: Server forwards the Request to the Servlet Container.
  • Step 4: Servlet Container invokes the appropriate Servlet.
  • Step 5: Servlet processes the Request and generates Response.
  • Step 6: Response is sent back to Client.

Step 1: Client Sends Request

जब user browser में कोई URL enter करता है या form submit करता है, तो browser server को HTTP request भेजता है। यह request GET या POST method से भेजी जा सकती है।

Step 2: Server Receives Request

Server (जैसे Tomcat) उस request को accept करता है और देखता है कि request किस resource (servlet) के लिए है। अगर mapping सही है तो वह request servlet container को forward करता है।

Step 3: Servlet Container Invokes Servlet

Servlet container उस servlet को ढूँढता है जो उस URL से जुड़ा है और फिर उसका service() method call करता है। यह method automatically decide करता है कि doGet() या doPost() method execute करना है।

Step 4: Servlet Processes Request

Servlet class के अंदर doGet() या doPost() method में हम logic लिखते हैं जो data process करता है। यहाँ developer user input को validate कर सकता है, database से data fetch कर सकता है या business logic perform कर सकता है।

Step 5: Servlet Generates Response

Servlet HTML या JSON format में output generate करता है जिसे client को वापस भेजा जाता है। response को HttpServletResponse object के माध्यम से लिखा जाता है।

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h2>Welcome to HTTP Cycle in Servlets</h2>");

Step 6: Response Sent to Client

Servlet द्वारा बनाए गए HTML page को server client को वापस भेज देता है। Browser उसे render करके user को दिखाता है। यही पूरा HTTP cycle है।

Important HTTP Classes in Java Servlets

HTTP request और response को handle करने के लिए Java Servlets दो main classes provide करता है:

  • HttpServletRequest – Client द्वारा भेजी गई request को represent करता है।
  • HttpServletResponse – Server द्वारा भेजे जाने वाले response को represent करता है।

HttpServletRequest Methods

Method Description
getParameter(String name) Form data से parameter value प्राप्त करता है।
getMethod() Request method (GET/POST) बताता है।
getHeader(String name) HTTP header की value देता है।
getRequestURI() Requested URI return करता है।

HttpServletResponse Methods

Method Description
setContentType(String type) Response content type set करता है (जैसे text/html)।
getWriter() Response output stream को access करता है।
sendRedirect(String location) User को किसी नए URL पर redirect करता है।

Lifecycle of a Servlet

Servlet का lifecycle भी HTTP cycle से directly जुड़ा होता है क्योंकि request-response इसी lifecycle के methods के माध्यम से manage होता है।

  • init() – Servlet को initialize करने के लिए एक बार call होता है।
  • service() – हर request पर call होता है (इसमें doGet() और doPost() को call किया जाता है)।
  • destroy() – Servlet को unload करने से पहले call होता है।
public class MyServlet extends HttpServlet {
  public void init() {
    System.out.println("Servlet Initialized");
  }

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    out.println("<h3>HTTP Cycle Example</h3>");
  }

  public void destroy() {
    System.out.println("Servlet Destroyed");
  }
}

GET vs POST in HTTP Cycle

Exam में अक्सर पूछा जाता है कि GET और POST methods में क्या अंतर है। नीचे table में clear comparison दिया गया है:

Parameter GET Method POST Method
Data Visibility URL में दिखता है Hidden रहता है
Security Less secure More secure
Data Limit 2048 characters तक No limit
Use Case Data fetch करना Data submit करना

Servlet Mapping and Deployment

Servlet को run करने के लिए उसे web.xml file या annotation के माध्यम से map करना ज़रूरी होता है।

Using web.xml

<servlet>
  <servlet-name>DemoServlet</servlet-name>
  <servlet-class>com.example.DemoServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>DemoServlet</servlet-name>
  <url-pattern>/demo</url-pattern>
</servlet-mapping>

Using Annotation

@WebServlet("/demo")
public class DemoServlet extends HttpServlet { ... }

Real-Life Example of HTTP Cycle

मान लो एक student login page open करता है और username-password enter करता है।

  • Browser HTTP POST request भेजता है — /login URL पर।
  • Server इस request को Servlet container तक पहुंचाता है।
  • Servlet username-password validate करता है।
  • अगर valid है तो servlet response में dashboard page भेज देता है।
  • Browser इसे render करके user को दिखाता है।

Advantages of Servlet-Based HTTP Cycle

  • Platform independent और fast performance।
  • Dynamic content generation में flexibility।
  • Efficient memory management (single instance per servlet)।
  • Easy integration with JSP और JDBC।

Important Exam Notes

  • HTTP Cycle हमेशा request-response based होता है।
  • Servlet Container ही lifecycle और mapping manage करता है।
  • HttpServletRequest और HttpServletResponse classes core part हैं।
  • GET method data fetch करने के लिए, POST method data send करने के लिए use होती है।
  • web.xml या @WebServlet annotation के बिना servlet accessible नहीं होता।
  • Response generate करने के लिए हमेशा PrintWriter का use करें।
  • Servlets Java EE का fundamental part हैं — हर web developer के लिए core topic है।

Summary of HTTP Cycle

तो पूरे HTTP Cycle in Java Servlets को समझने के बाद ये clear है कि:

  • Client request भेजता है (HTTP Request)।
  • Server इसे Servlet तक पहुँचाता है।
  • Servlet processing करके Response बनाता है।
  • Browser उस Response को render करता है।

यह पूरा process seamless communication ensure करता है और इसी foundation पर पूरी Java web architecture बनी हुई है।