package miso; // Servlet Imports import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import miso.DispatchedRequest; public class Controller { public void render(String template, DispatchedRequest obj) { try { try { RequestDispatcher disp = obj.getCtx().getRequestDispatcher("/views/" + obj.getParameter("controller") + "/" + template + ".jsp"); disp.forward(obj.getReq(), obj.getResp()); } catch (Throwable e) { System.out.println("== DIED IN RENDER"); e.printStackTrace(); obj.getReq().setAttribute("error", e.toString()); RequestDispatcher disp = obj.getCtx().getRequestDispatcher("/views/500.jsp"); disp.forward(obj.getReq(), obj.getResp()); } } catch (Throwable e) { System.out.println("== DIED RENDERING ERROR PAGE IN RENDER"); } } public void renderString(String string, DispatchedRequest obj) { try { try { PrintWriter out = obj.getResp().getWriter(); out.println(string); out.close(); } catch (Throwable e) { System.out.println("== DIED IN RENDERSTRING"); e.printStackTrace(); obj.getReq().setAttribute("error", e.toString()); RequestDispatcher disp = obj.getCtx().getRequestDispatcher("/views/500.jsp"); disp.forward(obj.getReq(), obj.getResp()); } } catch (Throwable e) { System.out.println("== DIED RENDERING ERROR PAGE IN RENDERSTRING"); } } public void redirect(DispatchedRequest obj, String redirectTo) { try { obj.getResp().sendRedirect(redirectTo); } catch (Throwable e) { e.printStackTrace(); } } }