package us.deans.parrot.redbird; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import us.deans.parrot.ParrotManager; // import us.deans.parrot.redbird.data.ExperienceDataSet; import us.deans.parrot.dataprovider.ExperienceDataSet; @WebServlet("/resume") public class RedbirdController extends HttpServlet { private static final long serialVersionUID = 1L; private ParrotManager appConfig; private Logger logger = Logger.getLogger(this.getClass()); //private ArrayList contracts= null; private ExperienceDataSet experience = null; // wrapper for contracts (to make the JSP easier) public RedbirdController() { super(); } public void init(ServletConfig config) throws ServletException { super.init(config); logger.debug(">> initializing RedbirdController."); ServletContext ctx = null; String configFile = ""; // get configuration file through the servlet context. try { ctx = getServletContext(); configFile = ctx.getRealPath("/WEB-INF/parrot.properties"); } catch (Exception ex) { ex.printStackTrace(); } // appConfig = RedbirdManager.getInstance(); appConfig = ParrotManager.getInstance(); appConfig.init(configFile); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String SQL1 = ""; String SQL2 = ""; String SQL3 = ""; // mutually exclusive options... if (request.getParameterMap().isEmpty()) { redirect(request, response, "default.html"); } else { while (true) { if (request.getParameterMap().containsKey("exit")) { redirect(request, response, "views/exit.jsp"); break; } appConfig = ParrotManager.getInstance(); try { SQL1 = appConfig.getSQL_ListExperience(); logger.debug("SQL1 check >> " + SQL1); SQL2 = appConfig.getSQL_DescExperience(); logger.debug("SQL2 check >> " + SQL2); SQL3 = appConfig.getSQL_ListSkillSet(); logger.debug("SQL3 check >> " + SQL3); } catch (Exception ex) { System.out.println(ex.getMessage()); } // load up the data... experience = new ExperienceDataSet(SQL1, SQL2, SQL3); experience.loadData(); if (request.getParameterMap().containsKey("jsp")) { // redirect to jsp request.setAttribute("experience", experience); logger.debug("got " + experience.count() + " records of data, redirecting to view now..."); redirect(request, response, "views/resume.jsp"); break; } if (request.getParameterMap().containsKey("birt")) { // redirect to birt request.setAttribute("experience", experience); logger.debug("redirecting to birt page..."); redirect(request, response, "views/birt_placemark.jsp"); break; } break; } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } private void redirect(HttpServletRequest request, HttpServletResponse response, String url) { RequestDispatcher dispatcher = request.getRequestDispatcher(url); try { dispatcher.forward(request, response); } catch (ServletException | IOException e) { logger.debug("dispatcher.forward - not working. See stack trace..."); e.printStackTrace(); } } }