diff --git a/src/Acme/Serve/Serve.java b/src/Acme/Serve/Serve.java index 49214072..e12d3e16 100644 --- a/src/Acme/Serve/Serve.java +++ b/src/Acme/Serve/Serve.java @@ -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 ))