Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.dgraf.nashornplayground; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; import com.google.common.io.Resources; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import java.net.URL; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author dgraf */ public class Bindings extends HttpServlet { private nashornScriptset scriptset; private final nashornScriptRunner runner; public Bindings() { super(); runner = new nashornScriptRunner(); scriptset = new nashornScriptset(); try { scriptset.setName("Bindings"); URL url = Resources.getResource("com/dgraf/nashornplayground/examples/bindings.js"); String script = Resources.toString(url, Charsets.UTF_8); scriptset.setScript(script); } catch (IOException ex) { Logger.getLogger(HelloWorld.class.getName()).log(Level.SEVERE, null, ex); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); ObjectMapper m = new ObjectMapper(); out.write(m.writeValueAsString(scriptset)); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); BufferedReader reader = request.getReader(); StringBuilder json = new StringBuilder(); String line; ObjectMapper mapper = new ObjectMapper(); while ((line = reader.readLine()) != null) json.append(line); scriptset = mapper.readValue(json.toString(), nashornScriptset.class); runner.run(scriptset); out.write(mapper.writeValueAsString(scriptset)); } @Override protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); ObjectMapper mapper = new ObjectMapper(); scriptset.reset(); out.write(mapper.writeValueAsString(scriptset)); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }