// =========================================================================== // Copyright (c) 1996 Mort Bay Consulting Pty. Ltd. All rights reserved. // $Id: RequestDispatchTest.java,v 1.16.2.5 2003/06/04 04:47:56 starksm Exp $ // --------------------------------------------------------------------------- package org.mortbay.servlet; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; import org.mortbay.util.Code; import org.mortbay.util.StringUtil; /* ------------------------------------------------------------ */ /** Test Servlet RequestDispatcher. * * @version $Id: RequestDispatchTest.java,v 1.16.2.5 2003/06/04 04:47:56 starksm Exp $ * @author Greg Wilkins (gregw) */ public class RequestDispatchTest extends HttpServlet { /* ------------------------------------------------------------ */ String pageType; /* ------------------------------------------------------------ */ public void init(ServletConfig config) throws ServletException { super.init(config); } /* ------------------------------------------------------------ */ public void doPost(HttpServletRequest sreq, HttpServletResponse sres) throws ServletException, IOException { doGet(sreq,sres); } /* ------------------------------------------------------------ */ public void doGet(HttpServletRequest sreq, HttpServletResponse sres) throws ServletException, IOException { sreq=new HttpServletRequestWrapper(sreq); sres=new HttpServletResponseWrapper(sres); String prefix = sreq.getContextPath()!=null ? sreq.getContextPath()+sreq.getServletPath() : sreq.getServletPath(); sres.setContentType("text/html"); String info ; if (sreq.getAttribute("javax.servlet.include.servlet_path")!=null) info=(String)sreq.getAttribute("javax.servlet.include.path_info"); else info=sreq.getPathInfo(); if (info==null) info="NULL"; if (info.startsWith("/include/")) { info=info.substring(8); if (info.indexOf('?')<0) info+="?Dispatch=include"; else info+="&Dispatch=include"; if (System.currentTimeMillis()%2==0) { PrintWriter pout=null; pout = sres.getWriter(); pout.write("
"+prefix+"/include/path\n"+
prefix+"/forward/path\n"+
prefix+"/includeN/name\n"+
prefix+"/forwardN/name\n"+
prefix+"/forwardC/context/path"
);
pout.flush();
}
}
/* ------------------------------------------------------------ */
public String getServletInfo()
{
return "Include Servlet";
}
/* ------------------------------------------------------------ */
public synchronized void destroy()
{
Code.debug("Destroyed");
}
}