Implemented defaultServlet which lives outside of the

WildcardDictionary that matches URL patterns to servlets.
This commit is contained in:
hns 2001-09-10 14:06:46 +00:00
parent 619dafac6d
commit 58e0306fb8

View file

@ -147,6 +147,8 @@ public class Serve implements ServletContext, Runnable
private int port;
private PrintStream logStream;
Acme.WildcardDictionary registry;
// the servlet to use if no other matches the request
Servlet defaultServlet;
Properties props;
/// Constructor.
@ -268,6 +270,10 @@ public class Serve implements ServletContext, Runnable
registry.remove (urlPat);
}
public void setDefaultServlet (Servlet servlet) {
defaultServlet = servlet;
}
/// Register a standard set of Servlets. These will return
// files or directory listings, and run CGI programs, much like a
// standard HTTP server.
@ -653,6 +659,8 @@ class ServeConnection implements Runnable, HttpServletRequest, HttpServletRespon
if (reqQuery != null)
reqQuery = decode (reqQuery);
Servlet servlet = (Servlet) serve.registry.get( reqUriPath );
if (servlet == null)
servlet = serve.defaultServlet;
if ( servlet != null )
runServlet( (HttpServlet) servlet );
else if ( "/".equals( reqUriPath ))