import java.io.*; import java.net.*; import java.util.*; final class HttpRequest implements Runnable { final static String CRLF = "\r\n"; Socket socket; // Constructor public HttpRequest(Socket socket) throws Exception { this.socket = socket; } // Implement the run() method of the Runnable interface. public void run() { try { processRequest(); } catch (Exception e) { System.out.println(e); } } private void processRequest() throws Exception { // Get a reference to the socket's input and output streams. InputStream is = ? - YOUR CODE HERE; DataOutputStream os = ? - YOUR CODE HERE; // Set up input stream filters. BufferedReader br = ? - YOUR CODE HERE; // Get the request line of the HTTP request message. String requestLine = ? - YOUR CODE HERE; // Display the request line. System.out.println(); System.out.println(requestLine); // Get and display the header lines. String headerLine = null; while ((headerLine = br.readLine()).length() != 0) { System.out.println(headerLine); } // Close streams and socket. os.close(); br.close(); socket.close(); } }