Advertisement
Guest User

Untitled

a guest
May 27th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. package obchallenge;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;
  8.  
  9. import javax.script.Invocable;
  10. import javax.script.ScriptEngine;
  11. import javax.script.ScriptEngineManager;
  12. import javax.servlet.ServletException;
  13. import javax.servlet.http.HttpServlet;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16.  
  17. public class EvaluateJavascript extends HttpServlet {
  18.  
  19.   private static final long serialVersionUID = 1L;
  20.  
  21.   public void doGet(HttpServletRequest request, HttpServletResponse response)
  22.       throws ServletException, IOException {
  23.     Connection connection = null;
  24.     try {
  25.       String script = request.getParameter("scriptJs");
  26.  
  27.       Class.forName("org.postgresql.Driver");
  28.       connection = DriverManager.getConnection("jdbc:postgresql://" + Constants.DB_URL + ":"
  29.           + Constants.DB_PORT + "/" + Constants.DB_SID, Constants.DB_USER, Constants.DB_PASSWORD);
  30.  
  31.       // create a script engine manager
  32.       ScriptEngineManager factory = new ScriptEngineManager();
  33.       ScriptEngine engine = factory.getEngineByName("JavaScript");
  34.       // "var test = new Object(); test.suma = function Suma(num) { this.num = this.num; var result = num*2; print(result)}";
  35.       engine.eval(script);
  36.  
  37.       Invocable inv = (Invocable) engine;
  38.       Object obj = engine.get("test");
  39.       inv.invokeMethod(obj, "suma", "21");
  40.  
  41.       // TODO: Devolver si OK o ERROR.
  42.       response.setContentType("application/json");
  43.       PrintWriter out = response.getWriter();
  44.       out.print("{result:'success'}");
  45.  
  46.     } catch (Exception e) {
  47.       System.out.println("Connection Failed! Check output console");
  48.       e.printStackTrace();
  49.       return;
  50.     } finally {
  51.       if (connection != null) {
  52.         try {
  53.           connection.close();
  54.         } catch (SQLException e) {
  55.           e.printStackTrace();
  56.         }
  57.  
  58.       }
  59.     }
  60.  
  61.   }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement