From f9b15dc42ba641cefef8360e4bea6035d9f7e26e Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sat, 03 Jul 2021 08:25:34 +0000
Subject: [PATCH] Helfer fuer Attribute hinzugefuegt

---
 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&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