1137
|
1 package luan.webserver.handlers;
|
|
2
|
|
3 import luan.webserver.Handler;
|
|
4 import luan.webserver.Request;
|
|
5 import luan.webserver.Response;
|
|
6
|
|
7
|
|
8 public final class IndexHandler implements Handler {
|
|
9 private final Handler handler;
|
|
10 private final String indexName;
|
|
11
|
|
12 public IndexHandler(Handler handler) {
|
|
13 this(handler,"index.html");
|
|
14 }
|
|
15
|
|
16 public IndexHandler(Handler handler,String indexName) {
|
|
17 this.handler = handler;
|
|
18 this.indexName = indexName;
|
|
19 }
|
|
20
|
|
21 public Response handle(Request request) {
|
|
22 if( request.path.endsWith("/") ) {
|
|
23 String path = request.path;
|
|
24 try {
|
|
25 request.path += indexName;
|
|
26 Response response = handler.handle(request);
|
|
27 if( response != null )
|
|
28 return response;
|
|
29 } finally {
|
|
30 request.path = path;
|
|
31 }
|
|
32 }
|
|
33 return handler.handle(request);
|
|
34 }
|
|
35 }
|