- Java EE Tutorials
- Servlets Tutorials
- Servlets Interview Questions
First let us list the differences between the forward() and sendRedirect() methods. Then we will see an example for each:
forward() | sendRedirect() |
---|---|
The forward() method is executed in the server side. | The sendRedirect() method is executed in the client side. |
The request is transfer to other resource within same server. | The request is transfer to other resource to different server. |
It does not depend on the client’s request protocol since the forward ( ) method is provided by the servlet container. | The sendRedirect() method is provided under HTTP so it can be used only with HTTP clients. |
The request is shared by the target resource. | New request is created for the destination resource. |
Only one call is consumed in this method. | Two request and response calls are consumed. |
It can be used within server. | It can be used within and outside the server. |
We cannot see forwarded message, it is transparent. | We can see redirected address, it is not transparent. |
The forward() method is faster than sendRedirect() method. | The sendRedirect() method is slower because when new request is created old request object is lost. |
It is declared in RequestDispatcher interface. | It is declared in HttpServletResponse. |
Signature : forward(ServletRequest request, ServletResponse response) |
Signature: void sendRedirect(String url) |
Example for sendRedirect () method
[code lang=”java”]
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RedirectServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
res.sendRedirect("https://javabeat.net");
out.close();
}
}
[/code]
Example for forward () method
Hello.html
[code lang=”html”]
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="Simple" method="get">
Name: <input type="text" name="uname">
password: <input type="password" name="upass"><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
[/code]
SimpleServlet(servlet file)
[code lang=”java”]
package javabeat.net.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SimpleServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doGet————–start");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String str = request.getParameter("uname");
String st = request.getParameter("upass");
System.out.println("doGet————–Middle");
if (st.equals("javabeat")) {
RequestDispatcher rd = request.getRequestDispatcher("Welcome");
rd.forward(request, response);
} else {
out.print("Sorry username and password error!");
RequestDispatcher rd = request.getRequestDispatcher("/Hello.html");
rd.include(request, response);
}
System.out.println("doGet————–end");
}
}
[/code]
Welcome (servlet file)
[code lang=”java”]
package javabeat.net.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Welcome extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String str = request.getParameter("uname");
out.print("welcome " + str);
}
}
[/code]
Now execute the Hello.html,right mouse click select Run >Run As and enter “javabeat” and click on submit. A message “Welcome Javabeat” will be displayed on the screen.
Previous Tutorial : Http Status Code || Next Tutorial : ServletInputStream and ServletOutputStream
Leave a Reply