package jeql; import java.io.IOException; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jeql.api.JeqlOptions; import jeql.api.JeqlRunner; public class JeqlServlet extends HttpServlet { public static final String CONTENT_TYPE_TEXT_HTML = "text/html"; private ServletContext servletContext; public void init(ServletConfig config) throws ServletException { super.init(config); this.servletContext = config.getServletContext(); //System.out.println("init"); } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String uri = request.getServletPath(); //String info = request.getPathInfo(); System.out.println("script request: " + uri); //String currdir = request.getSession().getServletContext().getRealPath("/"); //System.out.println(currdir); String scriptPathname = getScriptPathname(request); run(scriptPathname, request.getParameterMap()); //testResponse(response); } /** * Parses the http request for the real script or template source file. * * @param request * the http request to analyze * @return a file object using an absolute file path name */ protected String getScriptPathname(HttpServletRequest request) { String uri = getScriptUri(request); String real = servletContext.getRealPath(uri); return real; } private String getScriptUri(HttpServletRequest request) { return request.getServletPath(); } public void run(String scriptFile, Map parameters) { JeqlRunner runner = new JeqlRunner(); JeqlOptions options = new JeqlOptions(); runner.init(options); //TODO: fix exception handling boolean returnCode = false; try { returnCode = runner.execScriptFile(scriptFile, null); //returnCode = runScript(runner); } catch (Exception ex) { ex.printStackTrace(); } } private void testResponse(HttpServletResponse response) throws IOException { response.setContentType(CONTENT_TYPE_TEXT_HTML); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().println("<h1>Hello</h1>"); } public void destroy() { // TODO Auto-generated method stub } public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } public String getServletInfo() { // TODO Auto-generated method stub return null; } }