From 9d3717abd59e1672f5d8d7888ce613afdc7fb3c5 Mon Sep 17 00:00:00 2001 From: ulrich Date: Wed, 24 Jan 2024 13:00:11 +0000 Subject: [PATCH] HttpResponder.finish aufgeteilt --- src/de/uhilger/httpserver/base/handler/FileHandler.java | 54 +++++++----------------------------------------------- 1 files changed, 7 insertions(+), 47 deletions(-) diff --git a/src/de/uhilger/httpserver/base/handler/FileHandler.java b/src/de/uhilger/httpserver/base/handler/FileHandler.java index f5a123b..90083d0 100644 --- a/src/de/uhilger/httpserver/base/handler/FileHandler.java +++ b/src/de/uhilger/httpserver/base/handler/FileHandler.java @@ -25,7 +25,6 @@ import de.uhilger.httpserver.base.actor.FileActor; import java.io.File; import java.io.IOException; -import java.util.logging.Logger; /** * Die Klasse FileHandler dient zur Auslieferung von Dateiinhalten über @@ -40,14 +39,9 @@ */ public class FileHandler implements HttpHandler { - /* Der Logger fuer diesen FileHandler */ - private static final Logger logger = Logger.getLogger(FileHandler.class.getName()); - /* Headernamen */ public static final String RANGE_HEADER = "Range"; public static final String CONTENT_RANGE_HEADER = "Content-Range"; - //public static final String ACCEPT_RANGES_HEADER = "Accept-Ranges"; - //public static final String LAST_MODIFIED_DATE_HEADER = "Last-Modified"; public static final String CONTENT_TYPE = "Content-Type"; public static final String CONTENT_LENGTH = "Content-Length"; @@ -60,35 +54,19 @@ public static final int SC_UNPROCESSABLE_ENTITY = 422; /* String Konstanten */ - //public static final String STR_BYTES = "bytes"; public static final String STR_SLASH = "/"; public static final String STR_BLANK = " "; public static final String STR_DASH = "-"; public static final String STR_COMMA = ","; public static final String STR_DOT = "."; - //public static final String STR_NOT_FOUND = " not found."; - //public static final String LM_PATTERN = "EEE, dd MMM yyyy HH:mm:ss zzz"; public static final String RANGE_PATTERN = "[^\\d-,]"; public static final String WELCOME_FILE = "index.html"; /* Ablageort fuer Webinhalte */ - //protected final String fileBase; - public static final String ATTR_FILE_BASE = "fileBase"; + + /* moegliche Dateinamen, wenn kein Name angegeben wurde */ public static final String ATTR_WELCOME_FILES = "welcomeFiles"; - - /** - * 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; - } - */ /** * Die Datei ermitteln, die sich aus dem angefragten URL ergibt, prüfen, @@ -106,38 +84,20 @@ HttpResponder fs = new HttpResponder(); fs.sendNotFound(e, fName); } else { + File fileToDeliver = new File(e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(), fName); Headers headers = e.getRequestHeaders(); if (headers.containsKey(RANGE_HEADER)) { - FileActor fa = new FileActor(); - fa.serveFileParts(e, new File(e.getHttpContext().getAttributes().get(ATTR_FILE_BASE).toString(), fName)); + new FileActor().serveFileParts(e, fileToDeliver); } else { - HttpResponder fs = new HttpResponder(); - 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; + fileToDeliver = welcomeFile; } } - fs.serveFile(e, file); + new HttpResponder().serveFile(e, fileToDeliver); } } } - - /** - * Den Namen der gewü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ü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()); - } - */ -} +} \ No newline at end of file -- Gitblit v1.9.3