Mercurial Hosting > luan
view http/src/luan/modules/web/LuanServlet.java @ 493:1d082a0812e0
move web to http
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 15 May 2015 17:29:59 -0600 |
parents | web/src/luan/modules/web/LuanServlet.java@f86bf532f87c |
children |
line wrap: on
line source
package luan.modules.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import luan.LuanState; import luan.LuanException; public class LuanServlet extends HttpServlet { protected final String uriPrefix; protected final LuanState luan; public LuanServlet(String uriPrefix,LuanState luan) { this.uriPrefix = uriPrefix; this.luan = luan; } public LuanServlet(String uriPrefix) { this(uriPrefix,LuanState.newInstance()); } @Override protected void service(HttpServletRequest request,HttpServletResponse response) throws IOException { String path = request.getRequestURI(); service(request,response,path); } public void service(HttpServletRequest request,HttpServletResponse response,String path) throws IOException { if( !path.endsWith(".luan") ) throw new RuntimeException("'"+path+"' doesn't end with '.luan'"); String uri = uriPrefix + path.substring(0,path.length()-5); try { if( !HttpServicer.service(luan,request,response,uri) ) response.sendError(HttpServletResponse.SC_NOT_FOUND); } catch(LuanException e) { throw new RuntimeException(e); } } }