X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fibex%2Fxt%2FServlet.java;h=53eb197f0dd6aa97e9e86ca430ed50e8cd77bd80;hb=aa4748b4f5c375bedcfac257b684a59906c6f03a;hp=42de0bafc3f54c23e3042afb3b90e5d45367abc9;hpb=1a9695b5601cd90a65c743c859931d7146bdeed3;p=org.ibex.xt-crawshaw.git diff --git a/src/java/org/ibex/xt/Servlet.java b/src/java/org/ibex/xt/Servlet.java index 42de0ba..53eb197 100644 --- a/src/java/org/ibex/xt/Servlet.java +++ b/src/java/org/ibex/xt/Servlet.java @@ -1,7 +1,6 @@ package org.ibex.xt; import java.io.*; -import java.net.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; @@ -11,11 +10,9 @@ import org.ibex.util.Collections; import org.ibex.js.*; import org.prevayler.*; -import org.prevayler.implementation.snapshot.*; public class Servlet extends HttpServlet { - private String path; private Prevayler prevayler; private JS prevalent; private ServletContext cx = null; @@ -37,12 +34,30 @@ public class Servlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { doGet(request, response); } public void doGet(HttpServletRequest rq, HttpServletResponse rs) throws IOException { - String path = cx.getRealPath(rq.getServletPath()); + String src = rq.getServletPath(); Servlet.Scope scope = new Servlet.Scope(cx, rq, rs, prevayler); - rs.getWriter().write("beginning output..."); - try { Template.wrap(Template.parse(path, scope), scope).out(rs.getWriter()); } - catch (Exception e) { e.printStackTrace(); System.out.println("e = "+e); } - rs.getWriter().write("...output ends."); + try { + while (src != null) { + try { + StringWriter w = new StringWriter(); + Template t = Template.parse(cx.getRealPath(src), scope); + Template.wrap(t, scope).out(w); + rs.getWriter().write(w.toString()); + src = null; + } catch (Template.RedirectSignal r) { + src = r.getTarget(); + } + } + } catch (Template.Signal s) { + } catch (JSElement.Exn e) { + PrintWriter w = new PrintWriter(rs.getWriter()); + w.print("\n"+src+": "); + w.println(e.getMessage()); + System.out.println(e); + } catch (Exception e) { + System.out.println("Unexpected Exception:"); + e.printStackTrace(); + } } public static class Scope extends Template.Scope {