Mercurial Hosting > luan
view src/luan/webserver/examples/Example.java @ 1165:668f29bc52ea
clean up content-type
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 07 Feb 2018 23:16:12 -0700 |
parents | 49fb4e83484f |
children | 7e6f28c769a1 |
line wrap: on
line source
package luan.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.webserver.Handler; import luan.webserver.Request; import luan.webserver.Response; import luan.webserver.ResponseOutputStream; import luan.webserver.Server; import luan.webserver.handlers.MapHandler; import luan.webserver.handlers.SafeHandler; import luan.webserver.handlers.LogHandler; import luan.webserver.handlers.FileHandler; import luan.webserver.handlers.ListHandler; import luan.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 handler = new MapHandler(map); handler = new ListHandler( handler, new FileHandler() ); 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(); } }