The javax.servlet.http Package: Core HTTP Servlet Components
The javax.servlet.http Package: Core HTTP Servlet Components
जब हम Java Web Development की बात करते हैं, तो javax.servlet.http package एक बहुत ही core role निभाता है। ये package basically Java Servlet API का हिस्सा है, जो HTTP based client-server communication को manage करने के लिए use होता है। Simple words में कहें, तो यह web applications को dynamic content generate करने और client requests को handle करने की ability देता है।
Introduction to javax.servlet.http Package
इस package में वो सारे classes और interfaces मौजूद हैं जो HTTP protocol के साथ काम करने के लिए जरूरी हैं। ये package Java EE (अब Jakarta EE) के under आता है और इसे web containers जैसे Apache Tomcat, Jetty या GlassFish implement करते हैं।
मुख्य उद्देश्य यह है कि server-side applications को web browser या किसी भी HTTP client के साथ interact करने की सुविधा मिले। उदाहरण के लिए, जब कोई user form submit करता है, तो उसका data servlet तक इसी package की help से पहुंचता है।
मुख्य Features
- HTTP request और response को handle करने के लिए built-in classes।
- Session management और cookies support।
- GET और POST जैसे HTTP methods को handle करने की capability।
- Client-server communication के लिए standardized API।
Core Classes and Interfaces of javax.servlet.http Package
अब चलिए step-by-step समझते हैं कि इस package में कौन-कौन से important classes और interfaces हैं जो servlet development में सबसे ज़्यादा use होते हैं।
1. HttpServlet Class
HttpServlet इस package की सबसे important class है। यह abstract class होती है जो javax.servlet.GenericServlet को extend करती है। इसमें predefined methods होते हैं जिन्हें हम override करके request process कर सकते हैं।
Important Methods of HttpServlet
| Method | Description |
|---|---|
doGet() | HTTP GET request को handle करता है। |
doPost() | HTTP POST request को handle करता है। |
doPut() | Resource update के लिए HTTP PUT request को handle करता है। |
doDelete() | Resource delete करने के लिए HTTP DELETE request को handle करता है। |
service() | Automatically call होता है जब request आती है और method type के अनुसार redirect करता है। |
Example:
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<h3>Welcome to My Servlet</h3>");
}
}
2. HttpServletRequest Interface
HttpServletRequest interface का use client से आने वाली request को represent करने के लिए होता है। इसमें ऐसे methods होते हैं जिनसे हम form data, headers, cookies, parameters आदि को access कर सकते हैं।
Commonly Used Methods:
getParameter(String name)– किसी form field का value प्राप्त करने के लिए।getHeader(String name)– किसी specific header को retrieve करने के लिए।getCookies()– सभी cookies को access करने के लिए।getSession()– current session object return करता है।getMethod()– HTTP request method (GET, POST आदि) बताता है।
Example:
String user = request.getParameter("username");
String methodType = request.getMethod();
Cookie[] cookies = request.getCookies();
3. HttpServletResponse Interface
HttpServletResponse interface का use server से client को response भेजने के लिए किया जाता है। यह content type, status code, cookies आदि set करने की सुविधा देता है।
Commonly Used Methods:
setContentType(String type)– Response का MIME type set करता है।getWriter()– Output stream देता है जिसमें हम data लिख सकते हैं।setStatus(int sc)– HTTP status code set करता है।addCookie(Cookie cookie)– Client browser में cookie जोड़ता है।
Example:
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<p>Data sent successfully!</p>");
4. HttpSession Interface
HttpSession का use user-specific data को एक session में store करने के लिए होता है। जब कोई user site पर visit करता है, तो server उसके लिए एक unique session बनाता है।
Common Methods:
setAttribute(String name, Object value)– Session में data store करता है।getAttribute(String name)– Stored data retrieve करता है।invalidate()– Current session को destroy करता है।
Example:
HttpSession session = request.getSession();
session.setAttribute("username", "Ravi Kumar");
String name = (String) session.getAttribute("username");
5. Cookie Class
Cookie class client side data को store करने में मदद करती है। ये small text files होती हैं जो client browser में store रहती हैं और server से user को पहचानने में मदद करती हैं।
Example:
Cookie ck = new Cookie("user", "Ravi");
resp.addCookie(ck);
Life Cycle of an HttpServlet
Servlet का life cycle 5 stages में divide किया जाता है, जो automatically web container handle करता है। इसे समझना बहुत जरूरी है क्योंकि इसी से servlet का behavior control होता है।
Servlet Life Cycle Stages:
- Loading and Instantiation: Container servlet class को load करता है और उसका object बनाता है।
- Initialization (init method): Servlet initialization के लिए call होता है।
- Request Handling (service method): हर request के लिए execute होता है।
- Destroy (destroy method): जब servlet unload होता है तब resources free करने के लिए call होता है।
Code Example:
public class LifeCycleDemo extends HttpServlet {
public void init() { System.out.println("Servlet Initialized"); }
public void service(HttpServletRequest req, HttpServletResponse res) {
System.out.println("Request Processing...");
}
public void destroy() { System.out.println("Servlet Destroyed"); }
}
Difference Between GenericServlet and HttpServlet
| GenericServlet | HttpServlet |
|---|---|
| Protocol independent है। | HTTP protocol specific है। |
| service() method को manually implement करना होता है। | HTTP methods (GET, POST) के लिए predefined methods देता है। |
| Mostly lower-level communication के लिए use होता है। | Web-based communication के लिए use होता है। |
Advantages of javax.servlet.http Package
- HTTP protocol को simplify करके handle करता है।
- Session और cookie management आसान बनाता है।
- Dynamic web content generate करने में effective।
- Portable और platform-independent।
- Security features जैसे authentication और HTTPS support।
Real-life Example of HttpServlet
मान लीजिए एक college portal है जहाँ students अपने exam results check करते हैं। जब student अपना roll number enter करता है और “Submit” पर click करता है, तो data server तक HttpServletRequest के ज़रिए जाता है। फिर servlet backend database से data fetch करता है और HttpServletResponse के ज़रिए result page return करता है।
Example Code:
public class ResultServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String roll = req.getParameter("rollNo");
String result = getResultFromDB(roll);
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<h3>Your Result: " + result + "</h3>");
}
}
Key Points to Remember
- हर servlet class को
HttpServletextend करना चाहिए। - Client से आने वाला data हमेशा
HttpServletRequestके through access किया जाता है। - Response भेजने के लिए
HttpServletResponseuse होता है। - Session management के लिए
HttpSessionऔरCookieदोनों use किए जा सकते हैं। - Servlet container lifecycle manage करता है।
Exam-Oriented Notes
- Package: javax.servlet.http
- Main Classes: HttpServlet, Cookie
- Main Interfaces: HttpServletRequest, HttpServletResponse, HttpSession
- Life Cycle Methods: init(), service(), destroy()
- Important Methods: doGet(), doPost(), getParameter(), setContentType(), getSession()
- Used For: Handling HTTP requests and responses in Java web applications
- Key Feature: Simplifies client-server communication using HTTP protocol