Redirection
Home ] Up ] HTTP ] A Simple Java Web Server ] CGI ] Java Servlets ] Apache Tomcat ] Tomcat Directory Structure ] Creating a Web Application ] Web Application Directory Structure ] What's a Servlet? ] Generating Other Content ] The Servlet Life Cycle ] Servlets & Form Data ] Request Headers ] CGI Variables ] [ Redirection ]

 

 

A servlet may redirect a user's browser to another URL.

Here's a servlet that does that, based on what it learns about the user's browser:

/*
 * RedirectingServlet.java
 *
 * Created on November 24, 2006, 9:20 PM
 */

package redirectExamples;

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 servlet redirects the user to an appropriate web site.
 *
 * @author Bryan Higgs
 * @version
 */
public class RedirectingServlet extends HttpServlet
{
  /** 
   * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
   * @param request servlet request
   * @param response servlet response
   */
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    String userAgent = request.getHeader("User-Agent");
    String url = null;
    if ( (userAgent != null) )
    {
      if (userAgent.indexOf("MSIE") == -1)
      {
        // Not Microsoft Internet Explorer -- send to Internet Explorer home page.
        url = "http://www.microsoft.com/windows/ie/default.mspx";
      }
      else
      {
        // Microsoft Internet Explorer -- send to Firefox home page
        url = "http://www.mozilla.com/en-US/firefox/";
      }
      
      // Redirect to appropriate URL
      response.sendRedirect(url);
    }
  }
  
  /** 
   * Handles the HTTP <code>GET</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    processRequest(request, response);
  }
  
  /** 
   * Handles the HTTP <code>POST</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    processRequest(request, response);
  }
  
  /** 
   * Returns a short description of the servlet.
   */
  public String getServletInfo()
  {
    return "Redirects";
  }
}

Here is the result of this servlet, when you view it in Firefox or Opera:

Whereas, here's what you get when you use Microsoft Internet Explorer:

 
The page was last updated February 19, 2008