diff web/src/luan/modules/web/LuanHandler.java @ 175:bdbd4740121f

finish web server git-svn-id: https://luan-java.googlecode.com/svn/trunk@176 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Mon, 23 Jun 2014 07:48:17 +0000
parents
children 88ad4fc4c643
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/src/luan/modules/web/LuanHandler.java	Mon Jun 23 07:48:17 2014 +0000
@@ -0,0 +1,35 @@
+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 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;
+
+	LuanHandler(LuanState luan) {
+		this.luan = luan;
+	}
+
+	public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
+		throws IOException
+	{
+		try {
+			if( !HttpLuan.service(luan,request,response,target) )
+				return;
+			response.setStatus(HttpServletResponse.SC_OK);
+			baseRequest.setHandled(true);
+		} catch(LuanException e) {
+//e.printStackTrace();
+			response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,e.toString());
+			baseRequest.setHandled(true);
+		}
+	}
+}