Ultrakompakter HTTP Server
ulrich
2024-11-04 a1027d4499cfad752d6c449b407bb1f8dc4e16d2
src/de/uhilger/neon/FileServer.java
@@ -55,20 +55,21 @@
  public static final String STR_EMPTY = "";
  
  public void serveFile(HttpExchange exchange) throws IOException {
    String fName = new HttpHelper().getFileName(exchange);
    if (fName.startsWith(".")) {
      HttpResponder fs = new HttpResponder();
      fs.sendNotFound(exchange, fName);
    } else {
      File fileToDeliver = new File((String) exchange
    String fName = exchange.getRequestURI().getPath();
    try {
      fName = new HttpHelper().getFileName(exchange);
      String fBase = (String) exchange
              .getHttpContext().getAttributes()
              .getOrDefault(ATTR_FILE_BASE, STR_EMPTY), fName);
              .getOrDefault(ATTR_FILE_BASE, STR_EMPTY);
      //File fileToDeliver = new File((String) exchange
         //     .getHttpContext().getAttributes()
           //   .getOrDefault(ATTR_FILE_BASE, STR_EMPTY), fName);
      File fileToDeliver = new File(fBase, fName);
      Headers headers = exchange.getRequestHeaders();
      if (headers.containsKey(RANGE_HEADER)) {
        new PartialFileServer().serveFileParts(exchange, fileToDeliver);
      } else {
        if (fName.length() < 1 || fName.endsWith(STR_SLASH)) {
          //HttpHelper helper = new HttpHelper();
          File welcomeFile = tryWelcomeFiles(exchange, fName);
          if(welcomeFile != null) {
            fileToDeliver = welcomeFile;
@@ -76,9 +77,11 @@
        }
        new HttpResponder().serveFile(exchange, fileToDeliver);
      }
    }
    } catch(IllegalArgumentException ex) {
      new HttpResponder().sendNotFound(exchange, fName);
    }
  }
  public File tryWelcomeFiles(HttpExchange e, String fName) {
    boolean notFound = true;
    File file = null;