From f5728b1d24410f076777c1a6cd409c5e65d72051 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sat, 03 Jul 2021 08:27:56 +0000
Subject: [PATCH] FileHandler aufgeraeumt

---
 src/de/uhilger/httpserver/base/handler/FileHandler.java |   49 ++++++++++++-------------------------------------
 1 files changed, 12 insertions(+), 37 deletions(-)

diff --git a/src/de/uhilger/httpserver/base/handler/FileHandler.java b/src/de/uhilger/httpserver/base/handler/FileHandler.java
index d333477..b939b2f 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,19 +75,7 @@
   //protected final String fileBase;
   
   public static final String ATTR_FILE_BASE = "fileBase";
-
-  /**
-   * Ein neues Objekt der Klasse FileHandler erzeugen
-   *
-   * @param absoluteDirectoryPathAndName der absolute Pfad und Name des 
-   * Ordners im Dateisystem, der die Inhalte enthaelt, die von diesem 
-   * Handler ausgeliefert werden sollen
-   */
-  /*
-  public FileHandler(String absoluteDirectoryPathAndName) {
-    this.fileBase = absoluteDirectoryPathAndName;
-  }
-  */
+  public static final String ATTR_WELCOME_FILES = "welcomeFiles";
 
   /**
    * Die Datei ermitteln, die sich aus dem angefragten URL ergibt, prüfen,
@@ -99,7 +88,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,31 +98,17 @@
         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);
       }
     }
   }
-
-  /**
-   * Den Namen der gew&uuml;nschten Datei aus der HTTP-Anfrage ermitteln
-   * 
-   * @param e das Objekt mit Methoden zur Untersuchung der Anfrage sowie zum
-   * Anfertigen und Senden der Antwort
-   * @return Name der gew&uuml;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