src/de/uhilger/minsrv/App.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/minsrv/Server.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/minsrv/handler/FileHandler.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/minsrv/handler/StopServerHandler.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/minsrv/App.java
@@ -1,5 +1,5 @@ /* mc2 - Mediacenter neu mini-server - Ein minimalistischer HTTP-Server Copyright (C) 2021 Ulrich Hilger This program is free software: you can redistribute it and/or modify @@ -24,6 +24,7 @@ import java.util.logging.Logger; /** * Die Hauptklasse des mini-server * * @author ulrich * @version 0.1, 25.03.2021 @@ -34,11 +35,29 @@ public static final String IP_PORT = "port"; public static final String IP_WWW_DATA = "www-data"; public static final String IP_CTX = "ctx"; private static HashMap initParams; /** * @param args the command line arguments * Start-Methode dieser Anwendung * * Folgende Kommandozeilenparameter werden verarbeitet * ctx - Kontext des Servers * www-data - lokales Datenverzeichnis * port - Port * * Beispiel: * java -jar mini-server.jar ctx="srv" www-data="/home/fred/www" port=9090 * * Startet den Server auf http://localhost:9090/srv * und liefert Inhalte aus dem Verzeichnis /home/fred/www aus. * * Ein Aufruf von http://localhost:9090/srv/pfad/zum/inhalt/index.html * liefert also die Datei 'index.html' aus dem Ordner * /home/fred/www/pfad/zum/inhalt aus. * * @param args Kommandozeilenparameter */ public static void main(String[] args) { initParams = new HashMap(); @@ -55,10 +74,20 @@ } } /** * Diese Anwendung stoppen */ public static void stop() { System.exit(0); } /** * Einen Kommandozeilenparameter ermitteln * * @param pname Names des Parameters * @return Inhalt des Parameters oder null, wenn der Parameter * nicht gefunden wurde */ public static String getInitParameter(String pname) { String param = null; Object o = initParams.get(pname); src/de/uhilger/minsrv/Server.java
@@ -1,5 +1,5 @@ /* mc2 - Mediacenter neu mini-server - Ein minimalistischer HTTP-Server Copyright (C) 2021 Ulrich Hilger This program is free software: you can redistribute it and/or modify @@ -27,8 +27,11 @@ import java.util.concurrent.Executors; /** * Die Klasse Server stellt Methoden zur Ausführung eines * HTTP-Servers bereit * * @author ulrich * @version 0.1, 25.03.2021 */ public class Server { @@ -36,20 +39,38 @@ private int port; private String ctxName; public Server(int port) { this.port = port; } /** * Den Port angeben, unter dem der Server erreichbar sein soll * * @param port der Port, unter dem der Server erreichbar sein soll */ public void setPort(int port) { this.port = port; } public void setContextName(String ctxName) { this.ctxName = ctxName; } /** * Die Endpunkte ('Context'e) einrichten, unter denen die Dienste * dieses Servers erreichbar sein sollen und den Server starten * * @throws IOException wenn etwas schief geht, finden sich Angaben * in diesem Objekt */ public void start() throws IOException { logger.info("Server starting on port " + port); HttpServer server = HttpServer.create(new InetSocketAddress(port), 0); server.createContext("/mc2/av", new FileHandler(App.getInitParameter(App.IP_WWW_DATA))); server.createContext("/mc2/server/stop", new StopServerHandler()); server.createContext(ctxName + "/av", new FileHandler(App.getInitParameter(App.IP_WWW_DATA))); server.createContext(ctxName + "/server/stop", new StopServerHandler()); server.setExecutor(Executors.newFixedThreadPool(20)); server.start(); } src/de/uhilger/minsrv/handler/FileHandler.java
@@ -1,5 +1,5 @@ /* mc2 - Mediacenter neu mini-server - Ein minimalistischer HTTP-Server Copyright (C) 2021 Ulrich Hilger This program is free software: you can redistribute it and/or modify src/de/uhilger/minsrv/handler/StopServerHandler.java
@@ -1,5 +1,5 @@ /* mc2 - Mediacenter neu mini-server - Ein minimalistischer HTTP-Server Copyright (C) 2021 Ulrich Hilger This program is free software: you can redistribute it and/or modify