Created
September 8, 2009 12:39
-
-
Save nolim1t/182890 to your computer and use it in GitHub Desktop.
Simple Java webserver on port 8080
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.IOException; | |
import java.io.OutputStream; | |
import java.net.InetSocketAddress; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Set; | |
import java.net.URI; | |
import java.util.concurrent.Executors; | |
import com.sun.net.httpserver.Headers; | |
import com.sun.net.httpserver.HttpExchange; | |
import com.sun.net.httpserver.HttpHandler; | |
import com.sun.net.httpserver.HttpServer; | |
public class sunhttpd { | |
public static void main(String[] args) throws IOException { | |
InetSocketAddress addr = new InetSocketAddress(8080); | |
HttpServer server = HttpServer.create(addr, 0); | |
server.createContext("/test", new TestHandler()); | |
server.setExecutor(Executors.newCachedThreadPool()); | |
server.start(); | |
System.out.println("Server is listening on port 8080" ); | |
} | |
} | |
/* Sample java handler | |
*/ | |
class TestHandler implements HttpHandler { | |
public void handle(HttpExchange exchange) throws IOException { | |
String requestMethod = exchange.getRequestMethod(); | |
if (requestMethod.equalsIgnoreCase("GET")) { | |
URI responseURI = exchange.getRequestURI(); | |
String pathName = responseURI.getPath(); | |
Headers responseHeaders = exchange.getResponseHeaders(); | |
responseHeaders.set("Content-Type", "text/plain"); | |
exchange.sendResponseHeaders(200, 0); | |
OutputStream responseBody = exchange.getResponseBody(); | |
Headers requestHeaders = exchange.getRequestHeaders(); | |
Set<String> keySet = requestHeaders.keySet(); | |
Iterator<String> iter = keySet.iterator(); | |
while (iter.hasNext()) { | |
String key = iter.next(); | |
List values = requestHeaders.get(key); | |
String s = key + " = " + values.toString() + "\n"; | |
responseBody.write(s.getBytes()); | |
} | |
String pathString = "Pathname = " + pathName + "\n"; | |
responseBody.write(pathString.getBytes()); | |
responseBody.close(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment