Ich versuche, einen einfachen HTTP-Server mit com.sun.net.httpserver Klasse zu schreiben. Ich sende HTML-Datei (index.html) beim Start in den Browser, aber ich weiß nicht, wie eine externe CSS-Datei enthalten ist. Es funktioniert, wenn css-Code innerhalb der HTML-Datei platziert wird. Ich weiß, dass der Browser eine Anfrage senden sollte, fragen Server für CSS-Datei, aber ich bin mir nicht sicher, wie diese Anfrage erhalten und diese Datei an den Browser zurücksenden. Ich füge unten ein Fragment meines Codes bei, wenn es hilfreich sein könnte.Wie kann ich CSS-Datei mit com.sun.net.httpserver aufnehmen?
private void startServer()
{
try
{
server = HttpServer.create(new InetSocketAddress(8000), 0);
}
catch (IOException e)
{
System.err.println("Exception in class : " + e.getMessage());
}
server.createContext("/", new indexHandler());
server.setExecutor(null);
server.start();
}
private static class indexHandler implements HttpHandler
{
public void handle(HttpExchange httpExchange) throws IOException
{
Headers header = httpExchange.getResponseHeaders();
header.add("Content-Type", "text/html");
sendIndexFile(httpExchange);
}
}
static private void sendIndexFile(HttpExchange httpExchange) throws IOException
{
File indexFile = new File(getIndexFilePath());
byte [] indexFileByteArray = new byte[(int)indexFile.length()];
BufferedInputStream requestStream = new BufferedInputStream(new FileInputStream(indexFile));
requestStream.read(indexFileByteArray, 0, indexFileByteArray.length);
httpExchange.sendResponseHeaders(200, indexFile.length());
OutputStream responseStream = httpExchange.getResponseBody();
responseStream.write(indexFileByteArray, 0, indexFileByteArray.length);
responseStream.close();
}
was diese Codezeile tut 'server.createContext ("/", new indexHandler());'? –
Es erstellt einen HTTP-Kontext, der dem Pfad "/" zugeordnet ist. Alle Anforderungen für diesen Pfad werden vom indexHandler-Objekt verarbeitet. – bizkhit
Wenn Sie einen HTTP-Server schreiben möchten, müssen Sie verstehen, wie die Beziehung zwischen einer HTTP-Anfrage und ihrer Antwort aussieht. Ihnen zu sagen, das würde zu einem Tutorial führen. – Raedwald