Implemented defaultServlet which lives outside of the
WildcardDictionary that matches URL patterns to servlets.
This commit is contained in:
parent
619dafac6d
commit
58e0306fb8
1 changed files with 8 additions and 0 deletions
|
@ -147,6 +147,8 @@ public class Serve implements ServletContext, Runnable
|
||||||
private int port;
|
private int port;
|
||||||
private PrintStream logStream;
|
private PrintStream logStream;
|
||||||
Acme.WildcardDictionary registry;
|
Acme.WildcardDictionary registry;
|
||||||
|
// the servlet to use if no other matches the request
|
||||||
|
Servlet defaultServlet;
|
||||||
Properties props;
|
Properties props;
|
||||||
|
|
||||||
/// Constructor.
|
/// Constructor.
|
||||||
|
@ -268,6 +270,10 @@ public class Serve implements ServletContext, Runnable
|
||||||
registry.remove (urlPat);
|
registry.remove (urlPat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDefaultServlet (Servlet servlet) {
|
||||||
|
defaultServlet = servlet;
|
||||||
|
}
|
||||||
|
|
||||||
/// Register a standard set of Servlets. These will return
|
/// Register a standard set of Servlets. These will return
|
||||||
// files or directory listings, and run CGI programs, much like a
|
// files or directory listings, and run CGI programs, much like a
|
||||||
// standard HTTP server.
|
// standard HTTP server.
|
||||||
|
@ -653,6 +659,8 @@ class ServeConnection implements Runnable, HttpServletRequest, HttpServletRespon
|
||||||
if (reqQuery != null)
|
if (reqQuery != null)
|
||||||
reqQuery = decode (reqQuery);
|
reqQuery = decode (reqQuery);
|
||||||
Servlet servlet = (Servlet) serve.registry.get( reqUriPath );
|
Servlet servlet = (Servlet) serve.registry.get( reqUriPath );
|
||||||
|
if (servlet == null)
|
||||||
|
servlet = serve.defaultServlet;
|
||||||
if ( servlet != null )
|
if ( servlet != null )
|
||||||
runServlet( (HttpServlet) servlet );
|
runServlet( (HttpServlet) servlet );
|
||||||
else if ( "/".equals( reqUriPath ))
|
else if ( "/".equals( reqUriPath ))
|
||||||
|
|
Loading…
Add table
Reference in a new issue