From d0bb217f9fd72ff981c1e96aac9d7d87006d7736 Mon Sep 17 00:00:00 2001 From: ulrich Date: Fri, 26 Mar 2021 17:32:26 +0000 Subject: [PATCH] Kommentare und Dokumentation ergaenzt --- src/de/uhilger/minsrv/handler/FileHandler.java | 73 +++++++++++++++++++++++------------- 1 files changed, 46 insertions(+), 27 deletions(-) diff --git a/src/de/uhilger/minsrv/handler/FileHandler.java b/src/de/uhilger/minsrv/handler/FileHandler.java index d566db4..f1eb4ef 100644 --- a/src/de/uhilger/minsrv/handler/FileHandler.java +++ b/src/de/uhilger/minsrv/handler/FileHandler.java @@ -20,6 +20,7 @@ import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; +import de.uhilger.minsrv.Server; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -67,7 +68,6 @@ public static final String STR_BLANK = " "; public static final String STR_DASH = "-"; public static final String STR_COMMA = ","; - public static final String STR_SLASH = "/"; 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"; @@ -109,7 +109,7 @@ if (headers.containsKey(RANGE_HEADER)) { serveFileParts(e, new File(basePath, fName)); } else { - if (fName.endsWith(STR_SLASH)) { + if (fName.endsWith(Server.STR_SLASH)) { fName += WELCOME_FILE; } serveFile(e, new File(basePath, fName)); @@ -206,29 +206,6 @@ } } - private String contentRangeHdr(Range range, File file) { - StringBuilder sb = new StringBuilder(); - sb.append(STR_BYTES); - sb.append(STR_BLANK); - sb.append(range.getStart()); - sb.append(STR_DASH); - sb.append(range.getEnd()); - sb.append(STR_SLASH); - sb.append(file.length()); - return sb.toString(); - } - - private void setCommonHeaders(Headers resHeaders, File file) throws IOException { - resHeaders.add(ACCEPT_RANGES_HEADER, STR_BYTES); - String mimeType = Files.probeContentType(file.toPath()); - if (mimeType != null) { - resHeaders.add(CONTENT_TYPE, mimeType); - } - SimpleDateFormat sdf = new SimpleDateFormat(LM_PATTERN); - Date date = new Date(file.lastModified()); - resHeaders.add(LAST_MODIFIED_DATE_HEADER, sdf.format(date)); - } - /** * Die Byte-Ranges aus dem Range-Header ermitteln. * @@ -302,6 +279,46 @@ } /** + * Einen Content-Range Header erzeugen + * + * @param range die Range, aus deren Inhalt der Header erzeugt werden soll + * @param file die Datei, die den Inhalt liefert, der vom Header + * bezeichnet wird + * @return der Inhalt des Content-Range Headers + */ + private String contentRangeHdr(Range range, File file) { + StringBuilder sb = new StringBuilder(); + sb.append(STR_BYTES); + sb.append(STR_BLANK); + sb.append(range.getStart()); + sb.append(STR_DASH); + sb.append(range.getEnd()); + sb.append(Server.STR_SLASH); + sb.append(file.length()); + return sb.toString(); + } + + /** + * Die Header erzeugen, die unabhängig davon, ob der ganze + * Inhalt oder nur Teile davon ausgeliefert werden sollen, in der + * Antwort stehen sollen + * + * @param resHeaders das Objekt, in das die Header erzeugt werden + * @param file die Datei, für die die Header gelten + * @throws IOException falls etwas schief geht entsteht dieser Fehler + */ + private void setCommonHeaders(Headers resHeaders, File file) throws IOException { + resHeaders.add(ACCEPT_RANGES_HEADER, STR_BYTES); + String mimeType = Files.probeContentType(file.toPath()); + if (mimeType != null) { + resHeaders.add(CONTENT_TYPE, mimeType); + } + SimpleDateFormat sdf = new SimpleDateFormat(LM_PATTERN); + Date date = new Date(file.lastModified()); + resHeaders.add(LAST_MODIFIED_DATE_HEADER, sdf.format(date)); + } + + /** * Eine nicht gefunden Antwort senden * * @param e das Objekt mit Methoden zur Untersuchung der Anfrage sowie zum @@ -309,7 +326,7 @@ * @param fname Name der Datei, die nicht gefunden wurde * @throws IOException falls etwas schief geht entsteht dieser Fehler */ - public void sendNotFound(HttpExchange e, String fname) throws IOException { + private void sendNotFound(HttpExchange e, String fname) throws IOException { OutputStream os = e.getResponseBody(); String response = fname + STR_NOT_FOUND; byte[] bytes = response.getBytes(StandardCharsets.UTF_8); @@ -320,7 +337,9 @@ } /** - * Eine Range + * Eine Range bezeichnet einen zusammenhängenden Bereich + * aus Bytes, der sich aus den Bytepositionen des Beginns und Endes + * des Bereiches ergibt. */ class Range { -- Gitblit v1.9.3