Mercurial Hosting > luan
comparison web/src/luan/modules/web/Web_server.luan @ 182:e6d6596a8bcc
improve Web_server
git-svn-id: https://luan-java.googlecode.com/svn/trunk@183 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Tue, 24 Jun 2014 08:34:39 +0000 |
parents | 5d2cb8c1f844 |
children | ed19d14360fa |
comparison
equal
deleted
inserted
replaced
181:5d2cb8c1f844 | 182:e6d6596a8bcc |
---|---|
5 import "org.eclipse.jetty.server.handler.DefaultHandler" | 5 import "org.eclipse.jetty.server.handler.DefaultHandler" |
6 import "org.eclipse.jetty.server.handler.HandlerList" | 6 import "org.eclipse.jetty.server.handler.HandlerList" |
7 import "org.eclipse.jetty.server.handler.HandlerCollection" | 7 import "org.eclipse.jetty.server.handler.HandlerCollection" |
8 import "org.eclipse.jetty.server.handler.ResourceHandler" | 8 import "org.eclipse.jetty.server.handler.ResourceHandler" |
9 import "org.eclipse.jetty.server.handler.RequestLogHandler" | 9 import "org.eclipse.jetty.server.handler.RequestLogHandler" |
10 import "org.eclipse.jetty.server.handler.ContextHandler" | |
11 import "org.eclipse.jetty.server.handler.GzipHandler" | |
12 import "org.eclipse.jetty.server.handler.HandlerWrapper" | |
10 import "org.eclipse.jetty.server.session.SessionHandler" | 13 import "org.eclipse.jetty.server.session.SessionHandler" |
11 import "web/Http" | 14 import "web/Http" |
12 | 15 |
13 | 16 |
14 port = 8080 | 17 port = 8080 |
19 luan_handler = Http.new_luan_handler() | 22 luan_handler = Http.new_luan_handler() |
20 | 23 |
21 resource_handler = ResourceHandler.new() | 24 resource_handler = ResourceHandler.new() |
22 | 25 |
23 handlers = HandlerList.new() | 26 handlers = HandlerList.new() |
24 handlers.setHandlers { session_handler, luan_handler, resource_handler, DefaultHandler.new(), log_handler } | 27 handlers.setHandlers { session_handler, luan_handler, resource_handler } |
28 | |
29 function add_folder(context,dir) | |
30 local rh = ResourceHandler.new() | |
31 rh.setResourceBase(dir) | |
32 local ch = ContextHandler.new(context) | |
33 ch.setHandler(rh) | |
34 handlers.addHandler(ch) | |
35 return rh | |
36 end | |
37 | |
38 handler_wrapper = HandlerWrapper.new() | |
39 handler_wrapper.setHandler(handlers) | |
40 | |
41 function zip() | |
42 local h = GzipHandler.new() | |
43 h.setHandler(handler_wrapper.getHandler()) | |
44 handler_wrapper.setHandler(h) | |
45 end | |
25 | 46 |
26 log = NCSARequestLog.new() | 47 log = NCSARequestLog.new() |
27 log.setExtended(false) | 48 log.setExtended(false) |
28 log_handler = RequestLogHandler.new() | 49 log_handler = RequestLogHandler.new() |
29 log_handler.setRequestLog(log) | 50 log_handler.setRequestLog(log) |
30 | 51 |
31 local hc = HandlerCollection.new() | 52 local hc = HandlerCollection.new() |
32 hc.setHandlers { handlers, log_handler } | 53 hc.setHandlers { handler_wrapper, DefaultHandler.new(), log_handler } |
33 | 54 |
34 | 55 |
35 function serve(dir) | 56 function serve(dir) |
36 dir = dir.gsub("/$","") -- remove trailing '/' if any | 57 dir = dir.gsub("/$","") -- remove trailing '/' if any |
37 Package.path = dir.."?.luan;java:luan/modules/?.luan" | 58 Package.path = dir.."?.luan;java:luan/modules/?.luan" |