Feedback Form

Sending Response: JspWriter, setContentType(), and Redirects

Sending Response in JSP: JspWriter, setContentType(), and Redirects

जब भी हम JSP (Java Server Pages) में dynamic web page बनाते हैं, तो client को response भेजना बहुत ज़रूरी होता है। Response का मतलब है — server द्वारा client (browser) को भेजी गई information। इस process को समझने के लिए हमें तीन main concepts जानने होंगे: JspWriter, setContentType(), और Redirects। ये तीनों methods response handling के core part हैं और हर JSP developer को अच्छे से आने चाहिए, खासकर exam point of view से।

What is JspWriter?

JSP में JspWriter एक predefined object होता है, जो client के browser में output भेजने का काम करता है। ये object JSP implicit objects में से एक है, और इसका use हम HTML content या dynamic data को client तक पहुँचाने के लिए करते हैं।

Basic Definition

JspWriter एक buffered character output stream है जो response body को write करने के लिए use होती है। ये javax.servlet.jsp.JspWriter class की object होती है और इसका default name out होता है।

Syntax

out.println("Hello JSP!");

ऊपर दिए गए example में out object का use करके “Hello JSP!” client browser में print किया गया है।

Important Methods of JspWriter

JspWriter class में कई useful methods होती हैं जो response को control करने में help करती हैं।

MethodDescription
print()Simple text या data output करता है
println()Output के बाद newline add करता है
clear()Buffer को clear करता है बिना flush किए
clearBuffer()Buffer को पूरी तरह empty करता है
flush()Buffered data को client तक भेजता है
getBufferSize()Buffer का size बताता है
getRemaining()Buffer में बची space बताता है

Example: Printing Output using JspWriter

<%
out.println("Welcome to JSP Response Handling!");
out.print("Today is: " + new java.util.Date());
%>

ऊपर दिए गए code में हमने out object का use करके message और date print की है। ये data client के browser में दिखाई देगा।

Understanding setContentType() Method

अब बात करते हैं setContentType() की। ये method response का content type define करने के लिए use होती है। जब server client को response भेजता है, तो browser को बताना जरूरी होता है कि भेजा गया data किस format में है — जैसे text/html, application/json, text/plain आदि।

Definition

response.setContentType() method का use MIME type set करने के लिए किया जाता है ताकि browser सही तरीके से data interpret कर सके।

Syntax

response.setContentType("text/html");

Example

<%
response.setContentType("text/html");
out.println("<h3>Response Type Set to HTML</h3>");
%>

इस example में हमने response type को “text/html” set किया है ताकि browser HTML के रूप में data render कर सके।

Common MIME Types

Content TypeUse
text/htmlHTML document के लिए
text/plainPlain text data के लिए
application/jsonJSON data के लिए
application/pdfPDF files के लिए
image/pngPNG images के लिए

इस method का use करना बहुत जरूरी होता है क्योंकि गलत content type set करने से browser data को सही तरीके से नहीं दिखा पाता।

What is sendRedirect()?

कई बार हमें client को किसी दूसरी page या website पर redirect करना पड़ता है। JSP में ये काम response.sendRedirect() method से किया जाता है। ये method client को एक new request भेजने के लिए instruct करता है।

Definition

sendRedirect() एक client-side redirect method है, जो browser को नया URL access करने के लिए कहता है। इसका मतलब है कि client browser दो बार request भेजता है — एक बार original JSP को और दूसरी बार new URL को।

Syntax

response.sendRedirect("newPage.jsp");

Example

<%
String user = request.getParameter("user");
if(user == null || user.equals("")) {
response.sendRedirect("login.jsp");
} else {
out.println("Welcome, " + user);
}
%>

ऊपर दिए गए code में अगर user parameter empty है तो user को login.jsp page पर redirect किया जाएगा, अन्यथा welcome message दिखेगा।

How sendRedirect() Works Internally

  • Server response header में Location field भेजता है।
  • Browser उस URL को detect करता है और automatically new request भेजता है।
  • New request का मतलब है — previous request data खो जाता है।

Difference between sendRedirect() and forward()

FeaturesendRedirect()forward()
TypeClient-side RedirectServer-side Forward
Request Count2 Requests1 Request
URL ChangeYes, URL changes in browserNo, URL remains same
PerformanceSlower (2 round trips)Faster (single trip)
Use CaseExternal or different web applicationSame web application

Difference between JspWriter and Response Object

कई बार students को confusion होता है कि out object (JspWriter) और response object में क्या फर्क है। चलिए इसे एक table से समझते हैं।

FeatureJspWriter (out)Response Object
PurposeOutput भेजने के लिएClient को response control करने के लिए
Classjavax.servlet.jsp.JspWriterjavax.servlet.http.HttpServletResponse
TypeCharacter StreamResponse Controller
Main Methodsprint(), println(), flush()setContentType(), sendRedirect()

Buffering in JspWriter

JspWriter का एक important concept है buffering। इसका मतलब है कि data तुरंत browser तक नहीं भेजा जाता, बल्कि पहले memory buffer में store होता है। जब buffer भर जाता है या explicitly flush() call किया जाता है, तब data browser को भेजा जाता है।

Advantages of Buffering

  • Performance बेहतर होती है क्योंकि बार-बार I/O operation नहीं होता।
  • अगर कोई error आती है तो response भेजने से पहले उसे handle किया जा सकता है।
  • Dynamic content को modify करना आसान होता है।

Example

<%
out.println("Starting Response...");
out.flush(); // Forces data to be sent
out.println("This part is after flush.");
%>

Setting Response Status and Headers

Response को control करने के लिए response object में और भी कई methods होती हैं जिनसे हम status code और headers set कर सकते हैं।

Example: Setting Status Code

<%
response.setStatus(200); // OK
out.println("Status: 200 OK");
%>

Example: Setting Custom Header

<%
response.setHeader("Cache-Control", "no-cache");
out.println("Header Set Successfully");
%>

Common Status Codes

CodeMeaning
200OK – Request successful
302Found – Redirected
404Not Found
500Internal Server Error

Best Practices for JSP Response Handling

  • Always call setContentType() at the beginning of JSP.
  • Use out.flush() carefully — once flushed, response can't be modified.
  • Redirects should be used before any output is sent to browser.
  • Keep output buffer size appropriate for performance.
  • Use response.setHeader() for caching or security control.

Important Points for Exam

  • JspWriter का default object name “out” होता है।
  • setContentType() response का MIME type define करता है।
  • sendRedirect() दो बार request भेजता है — ये client-side redirect होता है।
  • forward() server-side होता है और URL नहीं बदलता।
  • Once out.flush() हो गया तो redirect या forward नहीं किया जा सकता।

Quick Revision Notes

ConceptDescription
JspWriterClient को data भेजने के लिए output stream
setContentType()Response का MIME type set करता है
sendRedirect()Client को दूसरे page पर redirect करता है
flush()Buffered data को client तक भेजता है
forward()Request को internally दूसरे resource को भेजता है
response.setStatus()HTTP status code define करता है

Exam Oriented Full Example

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
response.setContentType("text/html");
String user = request.getParameter("name");
if(user == null || user.trim().equals("")) {
response.sendRedirect("error.jsp");
} else {
out.println("<h2>Welcome, " + user + "</h2>");
out.println("Your response type is: " + response.getContentType());
}
%>

इस example में अगर user parameter missing है तो user को error.jsp पर redirect किया जाता है, वरना welcome message दिखाया जाता है। ये typical exam question pattern है।