package buttondevteam.website.page; import java.io.PrintStream; import org.apache.commons.io.output.ByteArrayOutputStream; import com.sun.net.httpserver.*; import buttondevteam.website.io.IOHelper; import buttondevteam.website.io.Response; /** * Add to {@link Main}.Pages */ public abstract class Page implements HttpHandler { public abstract String GetName(); @Override public void handle(HttpExchange exchange) { try { if (exchange.getRequestURI().getPath().equals("/" + GetName())) IOHelper.SendResponse(handlePage(exchange)); else { IOHelper.SendResponse(404, "404 Not found", exchange); } } catch (Exception e) { e.printStackTrace(); try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream str = new PrintStream(baos); str.print("
"); e.printStackTrace(str); str.print(""); IOHelper.SendResponse(500, baos.toString("UTF-8"), exchange); } catch (Exception e1) { e1.printStackTrace(); } } } /** * The main logic of the endpoint. Use IOHelper to retrieve the message sent and other things. */ public abstract Response handlePage(HttpExchange exchange); }