Mercurial Hosting > luan
diff src/luan/webserver/handlers/IndexHandler.java @ 1137:c123ee15f99b
add webserver
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 29 Jan 2018 18:49:59 -0700 |
parents | |
children | 7e6f28c769a1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/webserver/handlers/IndexHandler.java Mon Jan 29 18:49:59 2018 -0700 @@ -0,0 +1,35 @@ +package luan.webserver.handlers; + +import luan.webserver.Handler; +import luan.webserver.Request; +import luan.webserver.Response; + + +public final class IndexHandler implements Handler { + private final Handler handler; + private final String indexName; + + public IndexHandler(Handler handler) { + this(handler,"index.html"); + } + + public IndexHandler(Handler handler,String indexName) { + this.handler = handler; + this.indexName = indexName; + } + + public Response handle(Request request) { + if( request.path.endsWith("/") ) { + String path = request.path; + try { + request.path += indexName; + Response response = handler.handle(request); + if( response != null ) + return response; + } finally { + request.path = path; + } + } + return handler.handle(request); + } +}