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"