From 4664926567a401a176938d958cb53baf7ada89e4 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Wed, 30 Jun 2021 10:53:15 +0000
Subject: [PATCH] Grundlagen fuer Inversion of Control

---
 src/de/uhilger/httpserver/base/handler/FileHandler.java |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/de/uhilger/httpserver/base/handler/FileHandler.java b/src/de/uhilger/httpserver/base/handler/FileHandler.java
index a6c6fca..d333477 100644
--- a/src/de/uhilger/httpserver/base/handler/FileHandler.java
+++ b/src/de/uhilger/httpserver/base/handler/FileHandler.java
@@ -71,7 +71,9 @@
   public static final String WELCOME_FILE = "index.html";
 
   /* Ablageort fuer Webinhalte */
-  protected final String fileBase;
+  //protected final String fileBase;
+  
+  public static final String ATTR_FILE_BASE = "fileBase";
 
   /**
    * Ein neues Objekt der Klasse FileHandler erzeugen
@@ -80,9 +82,11 @@
    * Ordners im Dateisystem, der die Inhalte enthaelt, die von diesem 
    * Handler ausgeliefert werden sollen
    */
+  /*
   public FileHandler(String absoluteDirectoryPathAndName) {
     this.fileBase = absoluteDirectoryPathAndName;
   }
+  */
 
   /**
    * Die Datei ermitteln, die sich aus dem angefragten URL ergibt, prüfen,
@@ -103,13 +107,13 @@
       Headers headers = e.getRequestHeaders();
       if (headers.containsKey(RANGE_HEADER)) {
         FileActor fa = new FileActor();
-        fa.serveFileParts(e, new File(fileBase, fName));
+        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(fileBase, fName));
+        fs.serveFile(e, new File(e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(), fName));
       }
     }
   }
@@ -128,8 +132,8 @@
     return uriPath.substring(ctxPath.length());
   }
   
-  public String getFileBase() {
-    return this.fileBase;
-  }
+  /*public String getFileBase() {
+    return this.e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString();
+  }*/
   
 }

--
Gitblit v1.9.3