private void handleRequest(RequestObject reqObj) { final Path path = reqObj.getPath(); final HttpServerConnection conn = reqObj.getConn(); final HttpRequest req = reqObj.getRequest(); WebServerLog.log(this, "Request handler got a request:\n" + req.toString()); if (!req.getRequestLine().getMethod().toUpperCase().equals("GET")) { return; } final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, ReasonPhrases.OK); boolean applyFilters; applyFilters = handleFileRequest(path, response); if (applyFilters) { filterChain.reset(path.toString()); filterChain.doFilter(reqObj.getRequest(), response); } try { proc.process(response, new BasicHttpContext()); addContentType(path, response); } catch (HttpException | IOException e1) { WebServerLog.log(this, "Request handler failed to 'process' response after filtering"); e1.printStackTrace(); } WebServerLog.log(this, "Request handler is sending a response:\n" + response.toString()); try { conn.sendResponseHeader(response); conn.sendResponseEntity(response); } catch (HttpException | IOException e) { WebServerLog.log(this, "Request handler has encountered error while sending response"); e.printStackTrace(); } }