Mercurial Hosting > luan
annotate src/luan/webserver/examples/Example.java @ 1148:49fb4e83484f
webserver - change headers to lower case
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 04 Feb 2018 17:11:06 -0700 |
parents | 2dda3c92a473 |
children | 668f29bc52ea |
rev | line source |
---|---|
1137 | 1 package luan.webserver.examples; |
2 | |
3 import java.io.Writer; | |
4 import java.io.OutputStreamWriter; | |
5 import java.io.IOException; | |
6 import java.util.Map; | |
7 import java.util.HashMap; | |
1143
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
8 import org.apache.log4j.EnhancedPatternLayout; |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
9 import org.apache.log4j.ConsoleAppender; |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
10 import org.apache.log4j.Logger; |
1137 | 11 import luan.webserver.Handler; |
12 import luan.webserver.Request; | |
13 import luan.webserver.Response; | |
14 import luan.webserver.ResponseOutputStream; | |
15 import luan.webserver.Server; | |
16 import luan.webserver.handlers.MapHandler; | |
17 import luan.webserver.handlers.SafeHandler; | |
1138
4189027691b7
webserver - add LogHandler
Franklin Schmidt <fschmidt@gmail.com>
parents:
1137
diff
changeset
|
18 import luan.webserver.handlers.LogHandler; |
1139
8126370ea8c0
webserver - add FileHandler
Franklin Schmidt <fschmidt@gmail.com>
parents:
1138
diff
changeset
|
19 import luan.webserver.handlers.FileHandler; |
8126370ea8c0
webserver - add FileHandler
Franklin Schmidt <fschmidt@gmail.com>
parents:
1138
diff
changeset
|
20 import luan.webserver.handlers.ListHandler; |
1146
2dda3c92a473
webserver - implement cookies
Franklin Schmidt <fschmidt@gmail.com>
parents:
1143
diff
changeset
|
21 import luan.webserver.handlers.ContentTypeHandler; |
1137 | 22 |
23 | |
24 public class Example implements Handler { | |
25 | |
26 public Response handle(Request request) { | |
27 Response response = new Response(); | |
1148
49fb4e83484f
webserver - change headers to lower case
Franklin Schmidt <fschmidt@gmail.com>
parents:
1146
diff
changeset
|
28 response.headers.put( "content-type", "text/plain; charset=UTF-8" ); |
1137 | 29 try { |
30 Writer writer = new OutputStreamWriter( new ResponseOutputStream(response) ); | |
31 writer.write("Hello World\n"); | |
32 writer.close(); | |
33 } catch(IOException e) { | |
34 throw new RuntimeException("shouldn't happen",e); | |
35 } | |
36 return response; | |
37 } | |
38 | |
39 public static void simple() throws IOException { | |
40 Handler handler = new Example(); | |
41 new Server(8080,handler).start(); | |
42 } | |
43 | |
44 public static void fancy() throws IOException { | |
45 Map<String,Handler> map = new HashMap<String,Handler>(); | |
1141
14927c34cbb7
webserver - add examples/Headers
Franklin Schmidt <fschmidt@gmail.com>
parents:
1139
diff
changeset
|
46 map.put( "/hello", new Example() ); |
14927c34cbb7
webserver - add examples/Headers
Franklin Schmidt <fschmidt@gmail.com>
parents:
1139
diff
changeset
|
47 map.put( "/headers", new Headers() ); |
1143
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
48 map.put( "/params", new Params() ); |
1146
2dda3c92a473
webserver - implement cookies
Franklin Schmidt <fschmidt@gmail.com>
parents:
1143
diff
changeset
|
49 map.put( "/cookies", new Cookies() ); |
1141
14927c34cbb7
webserver - add examples/Headers
Franklin Schmidt <fschmidt@gmail.com>
parents:
1139
diff
changeset
|
50 Handler handler = new MapHandler(map); |
1139
8126370ea8c0
webserver - add FileHandler
Franklin Schmidt <fschmidt@gmail.com>
parents:
1138
diff
changeset
|
51 handler = new ListHandler( handler, new FileHandler() ); |
1146
2dda3c92a473
webserver - implement cookies
Franklin Schmidt <fschmidt@gmail.com>
parents:
1143
diff
changeset
|
52 handler = new ContentTypeHandler(handler); |
1137 | 53 handler = new SafeHandler(handler); |
1138
4189027691b7
webserver - add LogHandler
Franklin Schmidt <fschmidt@gmail.com>
parents:
1137
diff
changeset
|
54 handler = new LogHandler(handler); |
1137 | 55 new Server(8080,handler).start(); |
56 } | |
57 | |
1143
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
58 public static void initLogging() { |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
59 // Logger.getRootLogger().setLevel(Level.INFO); |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
60 EnhancedPatternLayout layout = new EnhancedPatternLayout("%d{HH:mm:ss} %-5p %c - %m%n"); |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
61 ConsoleAppender appender = new ConsoleAppender(layout,"System.err"); |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
62 Logger.getRootLogger().addAppender(appender); |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
63 } |
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
64 |
1137 | 65 public static void main(String[] args) throws Exception { |
1143
3bf5190b3c77
webserver - handle GET params
Franklin Schmidt <fschmidt@gmail.com>
parents:
1141
diff
changeset
|
66 initLogging(); |
1137 | 67 fancy(); |
68 } | |
69 } |