private byte[] prepareDefaultPage(String message) { String head = "<!doctype html><html lang=\"en\"><head><title> Crawler HTML site </title></head>" + "<link href=\"css/style.css\" rel=\"stylesheet\" /><body><div class=\"header\"><h1>Crawler</h1></div>"; String form; if (message != null) { form = "<div class=\"crawlerAnswer\"><h2>" + message + "</h2>" + "<a href=\"/\"><h3>Back to homepage</h3></a></div>"; } else if (serverCrawler.isBusy()) { form = "<div class=\"crawlerAnswer\"><h2>Crawler is already running</h2></div>"; } else { form = "<div class=\"crawlerForm\"><form id=\"generalform\" method=\"post\" action=\"execResult.html\" class=\"crawlerFormTable\">" + "<table><tr><td><h3>Enter Domain</h3></td><td><input type=\"text\" name=\"Domain\"></td></tr><tr>" + "<td><h3><input type=\"checkbox\" name=\"portscan\">Perform full TCP port scan</h3></td></tr><tr>" + "<td><h3><input type=\"checkbox\" name=\"robots.txt\">Disrespect robots.txt</h3></td></tr>" + "<tr><td></td><td><input type=\"submit\" value=\"Start Crawler\"></td></tr></table></form></div>"; } String resultPages = prepareResultPagesSection(); String finish = "</body></html>"; String result = head + form + resultPages + finish; return result.getBytes(); }
private HtmlResponse respond200(HtmlRequest htmlRequest) throws IOException, InterruptedException { HtmlResponse response200 = new HtmlResponse(); byte[] bodyInBytes; if (htmlRequest.type.equals("TRACE")) { bodyInBytes = htmlRequest.unparsedRequest.getBytes(); } else if (htmlRequest.type.equals("POST")) { if (htmlRequest.requestedFile.equals("/params_info.html")) { bodyInBytes = makeTable(htmlRequest.parametersInRequestBody); } else if (htmlRequest.requestedFile.equals(execResults)) { System.out.println( "Parameters for Crawler : " + htmlRequest.parametersInRequestBody.toString()); if (serverCrawler.isBusy()) { bodyInBytes = prepareDefaultPage("Crawler is busy"); } else { String crawlerInputCheckResults = checkCrawlerInput(htmlRequest); if (crawlerInputCheckResults == null) { bodyInBytes = activateCrawler(htmlRequest); Thread crawlerThread = new Thread(serverCrawler); crawlerThread.start(); } else { bodyInBytes = prepareDefaultPage(crawlerInputCheckResults); } } } else { bodyInBytes = null; } } else { bodyInBytes = readFileForResponse(htmlRequest); } response200.setEntityBody(bodyInBytes); response200.setStatus(htmlRequest.httpVersion, 200); String contentType; if (!htmlRequest.type.equals("POST")) { contentType = getContentTypeFromFile(htmlRequest.requestedFile); } else { contentType = getContentTypeFromFile(htmlRequest.requestedFile); } response200.setContentTypeLine(contentType); return response200; }