diff --git a/src/main/java/eu/m724/blog/Server.java b/src/main/java/eu/m724/blog/Server.java index 2260503..a85c8c8 100644 --- a/src/main/java/eu/m724/blog/Server.java +++ b/src/main/java/eu/m724/blog/Server.java @@ -1,20 +1,18 @@ package eu.m724.blog; -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; +import com.sun.net.httpserver.SimpleFileServer; import java.io.IOException; import java.net.InetSocketAddress; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; import java.nio.file.Path; /** * The {@code Server} class represents a basic HTTP server designed to serve files - * from a specified webroot directory. + * from a specified webroot directory.
+ * {@link SimpleFileServer} is used. */ -public class Server implements HttpHandler { +public class Server { private final Path webroot; private InetSocketAddress listenAddress; @@ -47,7 +45,7 @@ public class Server implements HttpHandler { */ public void start() throws IOException { var server = HttpServer.create(listenAddress, 0); - server.createContext("/", this); + server.createContext("/", SimpleFileServer.createFileHandler(webroot.toAbsolutePath())); server.start(); System.out.println("Server started on http:/" + server.getAddress()); @@ -70,27 +68,4 @@ public class Server implements HttpHandler { System.out.println("Failed to open browser: " + e); } } - - @Override - public void handle(HttpExchange exchange) throws IOException { - var path = webroot.resolve(exchange.getRequestURI().getPath().substring(1)); - - if (Files.isDirectory(path)) { - path = path.resolve("index.html"); - } - - var code = 404; - var content = "Not found".getBytes(StandardCharsets.UTF_8); - - if (Files.isRegularFile(path)) { - code = 200; - content = Files.readAllBytes(path); - } - - exchange.sendResponseHeaders(code, content.length); - - var body = exchange.getResponseBody(); - body.write(content); - body.close(); - } }