Mercurial Hosting > luan
view http/src/luan/modules/http/LuanHandler.java @ 693:ca169567ce07
module URIs must now include ".luan"
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 19 Apr 2016 15:54:11 -0600 |
parents | a98812908fbc |
children | 2c41f2aec92f |
line wrap: on
line source
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 final LuanState luan; private final Logger logger; private String welcomeFile = "index.html"; public LuanHandler(LuanState luan,String loggerRoot) { this.luan = luan; if( loggerRoot==null ) loggerRoot = ""; logger = LoggerFactory.getLogger(loggerRoot+LuanHandler.class.getName()); } @Override 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+".luan") ) return; } catch(LuanException e) { String err = e.getFullMessage(); logger.error(err); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,err); } baseRequest.setHandled(true); } public void setWelcomeFile(String welcomeFile) { this.welcomeFile = welcomeFile; } @Override protected void doStop() throws Exception { synchronized(luan) { luan.close(); } //System.out.println("qqqqqqqqqqqqqqqqqqqq doStop "+this); super.doStop(); } /* @Override public void destroy() { System.out.println("qqqqqqqqqqqqqqqqqqqq destroy "+this); super.destroy(); } */ }