diff src/luan/lib/webserver/examples/Example.java @ 1347:643cf1c37723

move webserver to lib and bug fixes
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 25 Feb 2019 13:02:33 -0700
parents src/luan/webserver/examples/Example.java@312e4cadd508
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/luan/lib/webserver/examples/Example.java	Mon Feb 25 13:02:33 2019 -0700
@@ -0,0 +1,72 @@
+package luan.lib.webserver.examples;
+
+import java.io.Writer;
+import java.io.OutputStreamWriter;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.log4j.EnhancedPatternLayout;
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Logger;
+import luan.lib.webserver.Handler;
+import luan.lib.webserver.Request;
+import luan.lib.webserver.Response;
+import luan.lib.webserver.ResponseOutputStream;
+import luan.lib.webserver.Server;
+import luan.lib.webserver.handlers.MapHandler;
+import luan.lib.webserver.handlers.SafeHandler;
+import luan.lib.webserver.handlers.LogHandler;
+import luan.lib.webserver.handlers.FileHandler;
+import luan.lib.webserver.handlers.DirHandler;
+import luan.lib.webserver.handlers.ListHandler;
+import luan.lib.webserver.handlers.ContentTypeHandler;
+
+
+public class Example implements Handler {
+
+	public Response handle(Request request) {
+		Response response = new Response();
+		response.headers.put( "content-type", "text/plain; charset=utf-8" );
+		try {
+			Writer writer = new OutputStreamWriter( new ResponseOutputStream(response) );
+			writer.write("Hello World\n");
+			writer.close();
+		} catch(IOException e) {
+			throw new RuntimeException("shouldn't happen",e);
+		}
+		return response;
+	}
+
+	public static void simple() throws IOException {
+		Handler handler = new Example();
+		new Server(8080,handler).start();
+	}
+
+	public static void fancy() throws IOException {
+		Map<String,Handler> map = new HashMap<String,Handler>();
+		map.put( "/hello", new Example() );
+		map.put( "/headers", new Headers() );
+		map.put( "/params", new Params() );
+		map.put( "/cookies", new Cookies() );
+		Handler mapHandler = new MapHandler(map);
+		FileHandler fileHandler = new FileHandler();
+		Handler dirHandler = new DirHandler(fileHandler);
+		Handler handler = new ListHandler( mapHandler, fileHandler, dirHandler );
+		handler = new ContentTypeHandler(handler);
+		handler = new SafeHandler(handler);
+		handler = new LogHandler(handler);
+		new Server(8080,handler).start();
+	}
+
+	public static void initLogging() {
+//		Logger.getRootLogger().setLevel(Level.INFO);
+		EnhancedPatternLayout layout = new EnhancedPatternLayout("%d{HH:mm:ss} %-5p %c - %m%n");
+		ConsoleAppender appender = new ConsoleAppender(layout,"System.err");
+		Logger.getRootLogger().addAppender(appender);
+	}
+
+	public static void main(String[] args) throws Exception {
+		initLogging();
+		fancy();
+	}
+}