Ein minimalistischer HTTP-Server
ulrich
2021-03-27 b0db0f66ea0d3d69a710ab5e46ea7c745dd642d3
src/de/uhilger/minsrv/handler/FileHandler.java
@@ -118,6 +118,13 @@
    }
  }
  /**
   * 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
   */
  protected String getFileName(HttpExchange e) {
    String ctxPath = e.getHttpContext().getPath();
    String uriPath = e.getRequestURI().getPath();
@@ -135,11 +142,11 @@
   */
  protected void serveFile(HttpExchange e, File file) throws IOException {
    if (file.exists()) {
      OutputStream os = e.getResponseBody();
      setHeaders(e, file);
      e.sendResponseHeaders(SC_OK, file.length());
      if(HTTP_GET.equalsIgnoreCase(e.getRequestMethod())) {
        InputStream in = new FileInputStream(file);
        OutputStream os = e.getResponseBody();
        int b = in.read();
        while (b > -1) {
          os.write(b);
@@ -180,8 +187,6 @@
   */
  protected void serveFileParts(HttpExchange e, File file) throws IOException {
    if (file.exists()) {
      InputStream is = new FileInputStream(file);
      OutputStream os = e.getResponseBody();
      setHeaders(e, file);
      long responseLength = 0;
      long start = 0;
@@ -198,6 +203,8 @@
      }
      e.sendResponseHeaders(SC_PARTIAL_CONTENT, responseLength);
      if(HTTP_GET.equalsIgnoreCase(e.getRequestMethod())) {
        InputStream is = new FileInputStream(file);
        OutputStream os = e.getResponseBody();
        if (start > 0) {
          is.skip(start);
        }
@@ -354,7 +361,7 @@
   * aus Bytes, der sich aus den Bytepositionen des Beginns und Endes 
   * des Bereiches ergibt.
   */
  class Range {
  public class Range {
    private long start;
    private long end;