rendered paste bodyimport java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;public class SimpleServer { static Socket client; static BufferedReader fromClient; static PrintWriter toClient; /** * @param args */ public static void main(String[] args) { String s; while (true) { System.out.println(""); System.out .println("--------------------------------WAITING FOR CLIENT------------------------------"); System.out.println(""); try { ServerSocket server = new ServerSocket(80); client = server.accept(); System.out.println("SympleServer Connected on port 80"); fromClient = new BufferedReader( new InputStreamReader(client.getInputStream())); toClient = new PrintWriter( client.getOutputStream(), true); // s = fromClient.readLine(); // System.out.println(s); String message = fromClient.readLine(); String host = fromClient.readLine(); if (host == null || host.equals("") || !host.startsWith("Host: ")) { message("HTTP/1.1 400 Bad Request"); message("Date: " + displayDate(new Locale("en", "US"))); message(""); String errorMessage = getErrorMessage(400); message(errorMessage); } else { String request = findRequest(message); File f = new File(request); if (!f.exists()) { String errorMessage = getErrorMessage(404); messageln("HTTP/1.1 404 Not Found"); messageln("Content-Type: text/html"); messageln("Server: JServer"); messageln("Content-Length: "+errorMessage.length()); messageln("Date: " + displayDate(new Locale("en", "US"))); messageln(""); messageln(errorMessage.replace("\\file", f.getName())); } else { messageln("HTTP/1.1 200 OK"); if(f.getName().toLowerCase().endsWith(".html") || f.getName().toLowerCase().endsWith(".htm")) { messageln("Content-Type: text/html; charset=ISO-8859-1"); } if(f.getName().toLowerCase().endsWith(".gif")) { messageln("Content-Type: image/gif"); } if(f.getName().toLowerCase().endsWith(".jpg")) { messageln("Content-Type: image/jpg"); } if(f.getName().toLowerCase().endsWith(".png")) { messageln("Content-Type: image/png"); } toClient.println(""); BufferedReader br = new BufferedReader(new FileReader(f)); char read; while((read = (char)br.read()) != -1 && read != 65535) { message(read); } } } toClient.close(); server.close(); client.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println(""); System.out .println("--------------------------------CLOSED CONNECTION-------------------------------"); System.out.println(""); } } private static String findRequest(String message) { String[] s = message.split(" "); return s[1].substring(1); } static public String displayDate(Locale currentLocale) { Date today; String result; SimpleDateFormat formatter; formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", currentLocale); today = new Date(); result = formatter.format(today); // System.out.println("Locale: " + currentLocale.toString()); return (result); } public static String getErrorMessage(int messageNum) { String message = ""; File err = new File(messageNum + ".html"); try { FileReader fr = new FileReader(err); BufferedReader br = new BufferedReader(fr); String s; while ((s = br.readLine()) != null) { message += s + "\n"; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException i) { } return message; } public static void message(String message) { toClient.print(message); System.out.print(message); } public static void message(char message) { message(message +""); } public static void messageln(String message) { message(message + "\n"); }}