sendRedirect in servlet

sendRedirect() is the method of HttpServletResponse interface which is used to redirect response to another resource.

Syntax:

response. sendRedirect(relative url);

Difference between sendRedirect and RequestDispatcher.

             sendRedirect          RequestDispatcher
  1. Creates a new request from the client browser for the resource.
  2. Accept relative url so control can go inside or outside the server.
  3. New url can be seen in browser.
  4. Work on response object.
  1. No new request is created.
  2. Not accept relative url so can go only inside the server.
  3. New url can’t be seen in browser.
  4. Work on request object.

 

Example:

LoginServlet.java

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;
 
/**
 * This class is used for authentication process.
 * @author w3spoint
 */
public class LoginServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
 
    //no-argument constructor
    public LoginServlet() {
 
    }
 
    protected void doPost(HttpServletRequest request, 
    	HttpServletResponse response) 
              throws ServletException, IOException {
 
    	response.setContentType("text/html"); 
    	PrintWriter out = response.getWriter();
 
    	//get parameters from request object.
    	String userName = 
    		request.getParameter("userName").trim();
    	String password = 
    		request.getParameter("password").trim();
 
    	//check for null and empty values.
    	if(userName == null || userName.equals("") 
    			|| password == null || password.equals("")){
    		out.print("Please enter both username " +
    				"and password. <br/><br/>");
    		RequestDispatcher requestDispatcher = 
    			request.getRequestDispatcher("/login.html");
    		requestDispatcher.include(request, response);
    	}//Check for valid username and password.
    	else if(userName.equals("jai") && password.equals("1234")){
    		response.sendRedirect("WelcomeServlet");
    	}else{
    		out.print("Wrong username or password. <br/><br/>");
    		RequestDispatcher requestDispatcher = 
    			request.getRequestDispatcher("/login.html");
    		requestDispatcher.include(request, response);
    	}
	}
}

WelcomeServlet.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;
 
/**
 * This class is used to show the 
 * message when user logged in successfully.
 */
public class WelcomeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
        //no-argument constructor
        public WelcomeServlet() {
 
        }
 
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response)
	           throws ServletException, IOException {
 
	    	response.setContentType("text/html"); 
	    	PrintWriter out = response.getWriter();
 
	    	out.println("<html><body>");
	    	out.println("<h1>You are logged in " +
	    			"successfully.</h1>");
	    	out.println("</html></body>");	    	
	}
}

login.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
	<form action="LoginServlet" method="post">
		Username:<input type="text" name="userName"/>
		<br/><br/>
		Password:<input type="password" name="password"/>
		<br/><br/> 
		<input type="submit" value="login"/> 
	</form>  
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">
 
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>
    	com.w3spoint.business.LoginServlet
    </servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>
 
  <servlet>
    <servlet-name>WelcomeServlet</servlet-name>
    <servlet-class>
    	com.w3spoint.business.WelcomeServlet
    </servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>WelcomeServlet</servlet-name>
    <url-pattern>/WelcomeServlet</url-pattern>
  </servlet-mapping>
 
  <welcome-file-list>
    <welcome-file>login.html</welcome-file>
  </welcome-file-list>
 
</web-app>

Output:

servlet example 6 login
 
Enter username: jai and password:1234
servlet example 6 value
 
Click on login button.
servlet example 6 welcome
 
Download this example.
 
Next Topic: Servlet Init parameters and ServletConfig interface with example.
Previous Topic: RequestDispacher interface with example.

 

Content Protection by DMCA.com
Please Share