Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package obchallenge;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import javax.script.Invocable;
- import javax.script.ScriptEngine;
- import javax.script.ScriptEngineManager;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class EvaluateJavascript extends HttpServlet {
- private static final long serialVersionUID = 1L;
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- Connection connection = null;
- try {
- String script = request.getParameter("scriptJs");
- Class.forName("org.postgresql.Driver");
- connection = DriverManager.getConnection("jdbc:postgresql://" + Constants.DB_URL + ":"
- + Constants.DB_PORT + "/" + Constants.DB_SID, Constants.DB_USER, Constants.DB_PASSWORD);
- // create a script engine manager
- ScriptEngineManager factory = new ScriptEngineManager();
- ScriptEngine engine = factory.getEngineByName("JavaScript");
- // "var test = new Object(); test.suma = function Suma(num) { this.num = this.num; var result = num*2; print(result)}";
- engine.eval(script);
- Invocable inv = (Invocable) engine;
- Object obj = engine.get("test");
- inv.invokeMethod(obj, "suma", "21");
- // TODO: Devolver si OK o ERROR.
- response.setContentType("application/json");
- PrintWriter out = response.getWriter();
- out.print("{result:'success'}");
- } catch (Exception e) {
- System.out.println("Connection Failed! Check output console");
- e.printStackTrace();
- return;
- } finally {
- if (connection != null) {
- try {
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement