Java Tutorial/Servlet/Redirect

Материал из Java эксперт
Версия от 08:07, 1 июня 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Redirect Servlet Based on Path Info And Query String

   <source lang="java">

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class MyServlet extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res)
                              throws ServletException, IOException {
   // Determine the site where they want to go
   String site = req.getPathInfo();
   String query = req.getQueryString();
   // Handle a bad request
   if (site == null) {
     res.sendError(res.SC_BAD_REQUEST, "Extra path info required");
   }
   // Cut off the leading "/" and append the query string
   // We"re assuming the path info URL is always absolute
   String url = site.substring(1) + (query == null ? "" : "?" + query);
   // Log the requested URL and redirect
   log(url);  // or write to a special file
   res.sendRedirect(url);
 }

}</source>





Redirect Servlet by Setting Response Location

   <source lang="java">

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class MyServlet extends HttpServlet {

 Vector sites = new Vector();
 Random random = new Random();
 public void init() throws ServletException {
   sites.addElement("http://www.jexp.ru/Code/Java/CatalogJava.htm");
   sites.addElement("http://www.jexp.ru/Tutorial/Java/CatalogJava.htm");
   sites.addElement("http://www.jexp.ru/Article/Java/CatalogJava.htm");
   sites.addElement("http://www.jexp.ru/Product/Java/CatalogJava.htm");
 }
 public void doGet(HttpServletRequest req, HttpServletResponse res)
                              throws ServletException, IOException {
   res.setContentType("text/html");
   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);
 }

}</source>