Introduction: JSP Access to HttpServletRequest and HttpServletResponse
JSP Access to HttpServletRequest and HttpServletResponse
Introduction
जब हम Java Server Pages (JSP) में web application बनाते हैं, तो दो बहुत ही important objects होते हैं — HttpServletRequest और HttpServletResponse। ये दोनों objects पूरे request और response process को handle करते हैं।
सरल भाषा में कहें तो, जब कोई user किसी JSP page को access करता है, तो browser से जो request आती है, उसे HttpServletRequest संभालता है और जो output या response जाता है, वो HttpServletResponse के ज़रिए भेजा जाता है।
What is HttpServletRequest?
HttpServletRequest object client की तरफ़ से आने वाली request को represent करता है। जब भी कोई browser किसी JSP या Servlet को call करता है, तो server उस request को process करता है और उस दौरान कई details भेजी जाती हैं जैसे — parameters, headers, cookies, method (GET या POST), आदि।
मुख्य कार्य (Functions of HttpServletRequest)
- Client से भेजे गए data को receive करना।
- Form data या Query String से values निकालना।
- Request headers और attributes को access करना।
- Session और cookies की जानकारी प्राप्त करना।
Commonly Used Methods of HttpServletRequest
| Method | Description |
|---|---|
getParameter(String name) |
Form या URL से भेजा गया parameter value return करता है। |
getParameterNames() |
सभी parameters के नाम return करता है। |
getHeader(String name) |
Specific header की value return करता है। |
getMethod() |
HTTP method बताता है — GET या POST। |
getRequestURI() |
Requested resource का URI देता है। |
Example: Accessing Request Parameters
मान लीजिए एक HTML form है जो user name और email भेजता है। JSP में इसे ऐसे access करेंगे:
<%
String name = request.getParameter("username");
String email = request.getParameter("email");
out.println("Welcome " + name + "! Your Email: " + email);
%>
What is HttpServletResponse?
HttpServletResponse object server से client की ओर भेजे जाने वाले response को represent करता है। इसका काम है client को output भेजना — चाहे वो HTML हो, JSON हो या कोई file।
मुख्य कार्य (Functions of HttpServletResponse)
- Client को response भेजना (HTML, JSON, XML आदि)।
- Response headers और cookies को set करना।
- Redirect और status codes manage करना।
Commonly Used Methods of HttpServletResponse
| Method | Description |
|---|---|
setContentType(String type) |
Response content type set करता है जैसे “text/html” या “application/json”। |
addCookie(Cookie c) |
Client को cookie भेजता है। |
sendRedirect(String location) |
Client को किसी नए URL पर redirect करता है। |
setStatus(int statusCode) |
HTTP status code set करता है। |
getWriter() |
Response में output लिखने के लिए PrintWriter object देता है। |
Example: Sending Response in JSP
<%
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out.println("<h2>Response Sent Successfully!</h2>");
%>
How JSP Uses Request and Response Objects
जब JSP page run होता है, तो server automatically request और response objects provide करता है।
इन दोनों का scope page level पर होता है यानी पूरे JSP page में आप इन्हें use कर सकते हैं।
Auto Available Objects in JSP
JSP में कुछ implicit objects default available होते हैं, उनमें से दो हैं:
- request → HttpServletRequest का object
- response → HttpServletResponse का object
Example: Combined Use in JSP
<%
String user = request.getParameter("username");
if(user == null || user.isEmpty()) {
response.sendRedirect("error.jsp");
} else {
out.println("Welcome " + user + "!");
}
%>
Request Attributes in JSP
Request attributes temporary data होते हैं जिन्हें एक JSP से दूसरे JSP या Servlet में share किया जा सकता है। ये data current request तक valid रहता है।
Methods to Work with Request Attributes
| Method | Purpose |
|---|---|
setAttribute(String name, Object value) |
Request में data set करता है। |
getAttribute(String name) |
Request से data प्राप्त करता है। |
removeAttribute(String name) |
Attribute को remove करता है। |
Example: Setting and Getting Attributes
<%
request.setAttribute("student", "Ravi Kumar");
String name = (String) request.getAttribute("student");
out.println("Student Name: " + name);
%>
RequestDispatcher in JSP
RequestDispatcher interface का उपयोग एक JSP से दूसरे JSP या Servlet को control transfer करने के लिए किया जाता है। इसका use तब होता है जब हमें request को forward या include करना हो।
Methods of RequestDispatcher
- forward(request, response) — Control को अगले resource पर भेज देता है।
- include(request, response) — अगले resource का output current response में include करता है।
Example: Using RequestDispatcher
<%
RequestDispatcher rd = request.getRequestDispatcher("nextPage.jsp");
rd.forward(request, response);
%>
Difference Between sendRedirect() and forward()
| Property | sendRedirect() | forward() |
|---|---|---|
| Request Type | Client-Side Redirect | Server-Side Forward |
| URL Change | Browser URL change होता है | Browser URL same रहता है |
| Performance | थोड़ा slow क्योंकि new request बनती है | Fast क्योंकि same request रहती है |
| Scope | Old request data lose हो जाता है | Old request data retain रहता है |
Real-World Example: Login Page
मान लीजिए हमारे पास एक simple login.jsp है जहाँ user username और password डालता है। इस request को Servlet या JSP में handle किया जा सकता है:
<%
String user = request.getParameter("username");
String pass = request.getParameter("password");
if(user.equals("admin") && pass.equals("1234")) {
response.sendRedirect("dashboard.jsp");
} else {
response.sendRedirect("error.jsp");
}
%>
Advantages of Using Request and Response in JSP
- Server और client के बीच communication आसान बनाता है।
- Dynamic content generate करने में मदद करता है।
- Data sharing (attributes और parameters) को simplify करता है।
- Session management और cookies handling को आसान बनाता है।
- Better control flow देता है via forwarding या redirection।
Exam / Interview Important Points
- HttpServletRequest → Client से data प्राप्त करने के लिए।
- HttpServletResponse → Client को data भेजने के लिए।
getParameter()→ Form data प्राप्त करने के लिए।sendRedirect()→ नए URL पर redirect करने के लिए।RequestDispatcher.forward()→ एक JSP से दूसरे JSP को control देने के लिए।- दोनों objects JSP में implicit होते हैं, manually बनाने की जरूरत नहीं।
Notes
- HttpServletRequest → Client से आने वाली request को represent करता है।
- HttpServletResponse → Server से जाने वाले response को represent करता है।
- JSP में ये दोनों objects automatically available होते हैं।
- RequestDispatcher से control को आगे भेज सकते हैं।
- sendRedirect() और forward() में main फर्क URL और performance का होता है।
- इनका सही use JSP में communication और data flow को smooth बनाता है।