From 23abc65d25cba29663f23239bfbca8e21bb298b2 Mon Sep 17 00:00:00 2001 From: ulrich Date: Sat, 03 Jul 2021 07:41:12 +0000 Subject: [PATCH] PatternDelegator mit einem Actor ausgestattet --- src/de/uhilger/httpserver/base/handler/FileHandler.java | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/de/uhilger/httpserver/base/handler/FileHandler.java b/src/de/uhilger/httpserver/base/handler/FileHandler.java index d333477..f5a123b 100644 --- a/src/de/uhilger/httpserver/base/handler/FileHandler.java +++ b/src/de/uhilger/httpserver/base/handler/FileHandler.java @@ -21,6 +21,7 @@ import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; +import de.uhilger.httpserver.base.HttpHelper; import de.uhilger.httpserver.base.actor.FileActor; import java.io.File; import java.io.IOException; @@ -74,6 +75,7 @@ //protected final String fileBase; public static final String ATTR_FILE_BASE = "fileBase"; + public static final String ATTR_WELCOME_FILES = "welcomeFiles"; /** * Ein neues Objekt der Klasse FileHandler erzeugen @@ -99,7 +101,7 @@ */ @Override public void handle(HttpExchange e) throws IOException { - String fName = getFileName(e); + String fName = new HttpHelper().getFileName(e); if (fName.startsWith(STR_DOT)) { HttpResponder fs = new HttpResponder(); fs.sendNotFound(e, fName); @@ -109,11 +111,16 @@ FileActor fa = new FileActor(); fa.serveFileParts(e, new File(e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(), fName)); } else { - if (fName.length() < 1 || fName.endsWith(STR_SLASH)) { - fName += WELCOME_FILE; - } HttpResponder fs = new HttpResponder(); - fs.serveFile(e, new File(e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(), fName)); + File file = new File(e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(), fName); + if (fName.length() < 1 || fName.endsWith(STR_SLASH)) { + HttpHelper helper = new HttpHelper(); + File welcomeFile = helper.tryWelcomeFiles(e, fName); + if(welcomeFile != null) { + file = welcomeFile; + } + } + fs.serveFile(e, file); } } } @@ -125,15 +132,12 @@ * Anfertigen und Senden der Antwort * @return Name der gewünschten Datei */ + /* public String getFileName(HttpExchange e) { String ctxPath = e.getHttpContext().getPath(); String uriPath = e.getRequestURI().getPath(); logger.info(uriPath); return uriPath.substring(ctxPath.length()); - } - - /*public String getFileBase() { - return this.e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(); - }*/ - + } + */ } -- Gitblit v1.9.3