projects
/
org.ibex.xt-crawshaw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
extra comments
[org.ibex.xt-crawshaw.git]
/
src
/
java
/
org
/
ibex
/
xt
/
Servlet.java
diff --git
a/src/java/org/ibex/xt/Servlet.java
b/src/java/org/ibex/xt/Servlet.java
index
53eb197
..
78d1d91
100644
(file)
--- a/
src/java/org/ibex/xt/Servlet.java
+++ b/
src/java/org/ibex/xt/Servlet.java
@@
-5,7
+5,6
@@
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.*;
import javax.servlet.http.*;
-import org.ibex.util.*;
import org.ibex.util.Collections;
import org.ibex.js.*;
import org.ibex.util.Collections;
import org.ibex.js.*;
@@
-36,25
+35,37
@@
public class Servlet extends HttpServlet {
public void doGet(HttpServletRequest rq, HttpServletResponse rs) throws IOException {
String src = rq.getServletPath();
Servlet.Scope scope = new Servlet.Scope(cx, rq, rs, prevayler);
public void doGet(HttpServletRequest rq, HttpServletResponse rs) throws IOException {
String src = rq.getServletPath();
Servlet.Scope scope = new Servlet.Scope(cx, rq, rs, prevayler);
+ PrintWriter w = new PrintWriter(rs.getWriter());
try {
while (src != null) {
try {
try {
while (src != null) {
try {
- StringWriter w = new StringWriter();
+ StringWriter buffer = new StringWriter();
Template t = Template.parse(cx.getRealPath(src), scope);
Template t = Template.parse(cx.getRealPath(src), scope);
- Template.wrap(t, scope).out(w);
- rs.getWriter().write(w.toString());
+ Template.wrap(t, scope).out(buffer);
+
+ rs.setContentType("text/xml");
+ w.write(buffer.toString());
src = null;
} catch (Template.RedirectSignal r) {
src = r.getTarget();
}
}
} catch (Template.Signal s) {
src = null;
} catch (Template.RedirectSignal r) {
src = r.getTarget();
}
}
} catch (Template.Signal s) {
- } catch (JSElement.Exn e) {
- PrintWriter w = new PrintWriter(rs.getWriter());
+ // exit silently
+ } catch (JSLeaf.Exn e) {
w.print("\n"+src+": ");
w.println(e.getMessage());
System.out.println(e);
w.print("\n"+src+": ");
w.println(e.getMessage());
System.out.println(e);
+ } catch (FileNotFoundException e) {
+ w.print("\nfile not found: ");
+ w.println(e.getMessage());
+ System.out.println(e);
+ } catch (IOException e) {
+ w.print("\nio error: ");
+ w.println(e.getMessage());
+ e.printStackTrace();
} catch (Exception e) {
} catch (Exception e) {
+ w.print("Unexpected error occurred.");
System.out.println("Unexpected Exception:");
e.printStackTrace();
}
System.out.println("Unexpected Exception:");
e.printStackTrace();
}
@@
-85,13
+96,13
@@
public class Servlet extends HttpServlet {
//#end
return super.get(key);
}
//#end
return super.get(key);
}
- public void put(Object key, Object val) throws JSExn {
+ public Object put(Object key, Object val) throws JSExn {
//#switch(JS.toString(key))
case "created": throw new JSExn("can not set session.created");
case "accessed": throw new JSExn("can not set session.accessed");
case "invalidate": throw new JSExn("can not set session.invalidate");
//#end
//#switch(JS.toString(key))
case "created": throw new JSExn("can not set session.created");
case "accessed": throw new JSExn("can not set session.accessed");
case "invalidate": throw new JSExn("can not set session.invalidate");
//#end
- super.put(key, val);
+ return super.put(key, val);
}
public Object callMethod(Object method, final Object a, final Object b, Object c, Object[] rest, int nargs)
throws JSExn {
}
public Object callMethod(Object method, final Object a, final Object b, Object c, Object[] rest, int nargs)
throws JSExn {
@@
-117,9
+128,10
@@
public class Servlet extends HttpServlet {
private List keys = null;
public Object get(Object key) {
return request.getSession(true).getAttribute(JS.toString(key)); }
private List keys = null;
public Object get(Object key) {
return request.getSession(true).getAttribute(JS.toString(key)); }
- public void put(Object key, Object val) {
+ public Object put(Object key, Object val) {
if (val == null) request.getSession(true).removeAttribute(JS.toString(key));
if (val == null) request.getSession(true).removeAttribute(JS.toString(key));
- else request.setAttribute(JS.toString(key), val); }
+ else request.setAttribute(JS.toString(key), val);
+ return null; }
public Collection keys() {
return keys == null ? keys = Collections.list(request.getSession(true).getAttributeNames()) : keys; }
};
public Collection keys() {
return keys == null ? keys = Collections.list(request.getSession(true).getAttributeNames()) : keys; }
};
@@
-130,8
+142,8
@@
public class Servlet extends HttpServlet {
return keys == null ? keys = Collections.list(request.getHeaderNames()) : keys; }
};
private JS responseHeader = new JS() {
return keys == null ? keys = Collections.list(request.getHeaderNames()) : keys; }
};
private JS responseHeader = new JS() {
- public void put(Object key, Object val) {
- response.setHeader(JS.toString(key), JS.toString(val)); }
+ public Object put(Object key, Object val) {
+ response.setHeader(JS.toString(key), JS.toString(val)); return null; }
};
};
@@
-139,8
+151,8
@@
public class Servlet extends HttpServlet {
private class Sub extends JS {
Object key;
Sub(Object key) { this.key = key; }
private class Sub extends JS {
Object key;
Sub(Object key) { this.key = key; }
- public void put(Object key, Object val) throws JSExn {
- Scope.this.put(JS.toString(this.key) + "." + JS.toString(key), val); }
+ public Object put(Object key, Object val) throws JSExn {
+ return Scope.this.put(JS.toString(this.key) + "." + JS.toString(key), val); }
public Object get(Object key) throws JSExn {
return Scope.this.get(JS.toString(this.key) + "." + JS.toString(key)); }
public Object call(Object a0, Object a1, Object a2, Object[] rest, int nargs) throws JSExn {
public Object get(Object key) throws JSExn {
return Scope.this.get(JS.toString(this.key) + "." + JS.toString(key)); }
public Object call(Object a0, Object a1, Object a2, Object[] rest, int nargs) throws JSExn {
@@
-195,14
+207,14
@@
public class Servlet extends HttpServlet {
//#end
return null;
}
//#end
return null;
}
- public void put(Object key, Object val) throws JSExn {
+ public Object put(Object key, Object val) throws JSExn {
try {
//#switch(JS.toString(key))
try {
//#switch(JS.toString(key))
- case "transaction": transaction((JS)val);
case "response.code": response.setStatus(JS.toInt(val));
case "response.redirect": response.sendRedirect(JS.toString(val));
case "response.contentType": response.setContentType(JS.toString(val));
//#end
case "response.code": response.setStatus(JS.toInt(val));
case "response.redirect": response.sendRedirect(JS.toString(val));
case "response.contentType": response.setContentType(JS.toString(val));
//#end
+ return null;
} catch (IOException e) {
throw new JSExn(e);
}
} catch (IOException e) {
throw new JSExn(e);
}