protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, Exception { RequestDispatcher rd; try { // get db connection getConnection(); if ("initSchoolCompletion".equals(request.getParameter("report"))) { if (request.isUserInRole(Constants.Role_Admin)) { request.setAttribute("schoolList", Dao.getSchoolList(connection)); } else { request.setAttribute( "schoolList", Dao.getLimitedSchoolList(connection, getUmdPersonPk(request))); } rd = this.getServletContext().getRequestDispatcher(PRE_JSP_PARAMS + "/schoolCompletion.jsp"); rd.forward(request, response); } else if ("initRoadTester".equals(request.getParameter("report"))) { if (request.isUserInRole(Constants.Role_Admin)) { request.setAttribute("testerList", Dao.getTesterList(connection)); } else { request.setAttribute("testerList", getRoadTester(getLoggedInPerson(request))); } rd = this.getServletContext().getRequestDispatcher(PRE_JSP_PARAMS + "/roadTester.jsp"); rd.forward(request, response); } else if ("initInstructorExpiration".equals(request.getParameter("report"))) { rd = this.getServletContext() .getRequestDispatcher(PRE_JSP_PARAMS + "/instructorExpiration.jsp"); rd.forward(request, response); } else if ("initSchoolExpiration".equals(request.getParameter("report"))) { rd = this.getServletContext().getRequestDispatcher(PRE_JSP_PARAMS + "/schoolExpiration.jsp"); rd.forward(request, response); } else if (request.getParameter("showPage") != null) { rd = this.getServletContext() .getRequestDispatcher(PRE_JSP_PARAMS + "/" + request.getParameter("page") + ".jsp"); rd.forward(request, response); } else { createReport(request, response); } } catch (Exception e) { // show error page e.printStackTrace(); request.setAttribute("errorMsg", e.getMessage()); rd = this.getServletContext().getRequestDispatcher("/reportErrorPage.jsp"); rd.forward(request, response); } finally { closeConnection(); } }