Skip to content

Instantly share code, notes, and snippets.

@eungju
Created May 30, 2010 04:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eungju/418785 to your computer and use it in GitHub Desktop.
Save eungju/418785 to your computer and use it in GitHub Desktop.
package servlet;
import clojure.lang.RT;
import clojure.lang.Var;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
public class ClojureServlet extends HttpServlet {
private static final Var EVAL = RT.var("clojure.core", "eval");
public void init() {
RT.var("clojure.core", "random", new Random());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.append("<html><body><form method=\"post\"><textarea name=\"input\" cols=\"80\" rows=\"10\"></textarea><br/><input type=\"submit\" /></form></body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String input = request.getParameter("input");
PrintWriter writer = response.getWriter();
try {
writer.print(EVAL.invoke(RT.readString(input)));
} catch (Exception e) {
throw new ServletException("Exception", e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment