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 भेजता है —
/loginURL पर। - 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 बनी हुई है।