|
How to Redirect a Request using Servlet |
|
|
One of the useful things a servlet can do using status codes and a header is redirecting a request. This is done by sending instructions for the client to use another URL in the responses. Redirection is generally used when a document moves (to send the client to new location), for load balancing, or for simple randomization.
This example shows a servlet that performs a random-redirect, sending a client to a random site selected from its site list.
import java.io.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DemoSiteSelector extends HttpServlet{
Vector sites = new Vector();
Random random = new Random();
public void init(ServletConfig config)throws ServletException{
super.init(config);
sites.addElement("http://www.google.com");
sites.addElement("http://www.java-tips.org");
sites.addElement("http://www.yahoo.com");
sites.addElement("http://www.rediffmail.com");
}
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
res.setContentType("text/plain");
PrintWriter out= res.getWriter();
int siteIndex = Math.abs(random.nextInt())%sites.size();
String site = (String) sites.elementAt(siteIndex);
res.setStatus(res.SC_MOVED_TEMPORARILY);
res.setHeader("Location", site);
}
}
|
The actual redirection happened in two lines
res.setStatus(res.SC_MOVED_TEMPORARILY);
res.setHeader("Location", site);
|
These two lines can be simplified to one using the sendRedirect convenience method:
res.sendRedirect(site);
public void HttpServletRequest.sendRedirect(String location) throws IOException
|
Related Tips
|
Page 1 of 0 ( 0 comments )
You can share your information about this topic using the form below!
Please do not post your questions with this form! Thanks.