Mercurial Hosting > luan
diff http/src/luan/modules/http/LuanHandler.java @ 494:2b9bc97f0439
change luan:web to luan:http
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 15 May 2015 17:43:13 -0600 |
parents | http/src/luan/modules/web/LuanHandler.java@1d082a0812e0 |
children | 8dcf9e12446b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/http/src/luan/modules/http/LuanHandler.java Fri May 15 17:43:13 2015 -0600 @@ -0,0 +1,44 @@ +package luan.modules.http; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.eclipse.jetty.server.Request; +import org.eclipse.jetty.server.handler.AbstractHandler; +import luan.LuanState; +import luan.LuanException; + + +public class LuanHandler extends AbstractHandler { + private static final Logger logger = LoggerFactory.getLogger(LuanHandler.class); + private final LuanState luan; + private String welcomeFile = "index.html"; + + public LuanHandler(LuanState luan) { + this.luan = luan; + } + + public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) + throws IOException + { + if( target.endsWith("/") ) + target += welcomeFile; + try { + if( !HttpServicer.service(luan,request,response,"site:"+target) ) + return; + } catch(LuanException e) { + String err = e.getFullMessage(luan); + logger.error(err); + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,err); + } + baseRequest.setHandled(true); + } + + public void setWelcomeFile(String welcomeFile) { + this.welcomeFile = welcomeFile; + } +}