protected void dispatch(HttpServletRequest request, HttpServletResponse response) throws IOException { String method = null; if (request.getParameter("_method") != null) { method = request.getParameter("_method").toUpperCase(); } else { method = request.getMethod().toUpperCase(); } CrossingRoute route = findMatchedRoute(request.getRequestURI(), method); if (route == null) return; Map<String, Object> env = getEnvMap(request); CrossingHelpers.setParamsToEnv(container, request, env); CrossingResponse crossingResponse = CrossingHelpers.dispatch(container, request.getContextPath(), route, env); response.setStatus(crossingResponse.getStatus()); Set<String> keys = crossingResponse.getResponseHeader().keySet(); for (String key : keys) { String value = crossingResponse.getResponseHeader().get(key); response.setHeader(key, value); } request .getSession() .setAttribute("action_dispatch.request.flash_hash", crossingResponse.getFlash()); PrintWriter writer = response.getWriter(); writer.write(crossingResponse.getBody()); }
protected CrossingResponse dispatch(HttpServletRequest request) throws IOException { CrossingRoute route = findMatchedRoute(request.getRequestURI(), request.getMethod()); Map<String, Object> env = getEnvMap(request); return CrossingHelpers.dispatch(container, request.getContextPath(), route, env); }
protected Map<String, Object> getEnvMap(HttpServletRequest request) throws IOException { return CrossingHelpers.getEnvMap(request); }
protected CrossingRoute findMatchedRoute(String request_uri, String method) { return CrossingHelpers.findMatchedRoute(container, routes, request_uri, method); }
@Override public void init(ServletConfig config) throws ServletException { container = CrossingHelpers.initialize(config); routes = CrossingHelpers.parseRoutes(container); }