Basisklassen zum Modul jdk.httpserver
ulrich
2022-01-02 4e2a31c15ceb72db4eb10950a815210a68ab661d
Code aufgeraeumt und Kommentare ergaenzt
3 files modified
37 ■■■■ changed files
src/de/uhilger/httpserver/base/HttpResponder.java 12 ●●●●● patch | view | raw | blame | history
src/de/uhilger/httpserver/base/actor/FileActor.java 4 ●●● patch | view | raw | blame | history
src/de/uhilger/httpserver/base/handler/FileHandler.java 21 ●●●●● patch | view | raw | blame | history
src/de/uhilger/httpserver/base/HttpResponder.java
@@ -42,15 +42,10 @@
  public static final String CONTENT_TYPE = "Content-Type";
  public static final String LAST_MODIFIED_DATE_HEADER = "Last-Modified";
  //public static final String RANGE_HEADER = "Range";
  //public static final String CONTENT_RANGE_HEADER = "Content-Range";
  /* Statuscodes */
  public static final int SC_OK = 200;
  public static final int SC_NOT_FOUND = 404;
  
  //public static final int SC_PARTIAL_CONTENT = 206;
  /* HTTP Methoden */
  public static final String HTTP_GET = "GET";
  
@@ -58,13 +53,6 @@
  public static final String STR_BYTES = "bytes";
  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 STR_BLANK = " ";
  //public static final String STR_DASH = "-";
  //public static final String STR_COMMA = ",";
  //public static final String STR_DOT = ".";
  //public static final String RANGE_PATTERN = "[^\\d-,]";
  //public static final String WELCOME_FILE = "index.html";
  
  /**
   * Den Inhalt einer Datei ausliefern
src/de/uhilger/httpserver/base/actor/FileActor.java
@@ -38,7 +38,9 @@
import java.util.Iterator;
/**
 *
 * Die Klasse FileActor fuehrt die zur Auslieferung von Teilen
 * einer Datei noetigen Handlungen aus.
 *
 * @author Ulrich Hilger
 * @version 1, 11.06.2021
 */
src/de/uhilger/httpserver/base/handler/FileHandler.java
@@ -46,8 +46,6 @@
  /* 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,21 +58,18 @@
  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";
  /**
@@ -93,22 +88,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);
      }
    }
  }
}
}