Instead of own HttpHandler Signed-off-by: Minecon724 <git@m724.eu>
This commit is contained in:
parent
567bbd8c37
commit
3d4597b198
1 changed files with 5 additions and 30 deletions
|
@ -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.<br>
|
||||
* {@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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue