Zurück zum Manuskript
// Datei: GetFilter.java // Autor: Brecht // Datum: 11.12.18 // Thema: Stream-Socket-Verbindung zwischen Browser und Web- // Server. // Einfacher Frage/Antwort-Zyklus. // Nur GET-Requests (ohne favicon) werden bearbeitet. // ------------------------------------------------------------ import java.io.*; // Fuer den Reader import java.net.*; // Fuer den Socket class GetFilter { public static void main(String[] args) throws Exception { // Programmstart und Portbelegung // -------------------------------------------------------- int port = 9876; System.out.println("\nServer startet am Port"+port); // ServerSocket einrichten und in einer Schleife auf // Requests warten. // -------------------------------------------------------- ServerSocket ss = new ServerSocket(port); Socket cs = null; String zeile = null; BufferedReader br = null; PrintWriter pw = null; while(true) { System.out.println("Server geht ins accept()"); cs = ss.accept(); br = new BufferedReader( new InputStreamReader( cs.getInputStream())); pw = new PrintWriter(cs.getOutputStream()); // Erste Zeile des Requests lesen // ------------------------------------------------------ zeile = br.readLine(); // Favicon-Requests ignorieren // ------------------------------------------------------ if(zeile.startsWith("GET /favicon")) { System.out.println("Favicon-Request: ignorieren"); br.close(); continue; // Zum naechsten Request } // Nur GET-Requests durchlassen // ------------------------------------------------------ if(! zeile.startsWith("GET ")) { System.out.println("Kein GET-Request: ignorieren"); br.close(); continue; // Zum naechsten Request } // Den GET-Request bearbeiten // (Hier als Beispiel nur zuruecksenden) // ------------------------------------------------------ System.out.println("GET-Req. erhalten (kein favicon)"); System.out.println("Request wird bearbeitet"); System.out.println("Antwortseite wird geschrieben"); pw.println("HTTP/1.1 200 OK"); // HTML-Header pw.println("Connection: close"); pw.println("Content-Type: text/html"); pw.println(); pw.println("<html>"); // Antwortseite (HTML) pw.println("<body>"); pw.println("<h1><font color=green>"); pw.println(zeile); pw.println("</font></h1>"); pw.println("</body>"); pw.println("</html>"); pw.flush(); pw.close(); br.close(); } // while } // main() } // class

Zurück zum Manuskript