예제 #1
0
 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());
 }
예제 #2
0
 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);
 }
예제 #3
0
 protected Map<String, Object> getEnvMap(HttpServletRequest request) throws IOException {
   return CrossingHelpers.getEnvMap(request);
 }
예제 #4
0
 protected CrossingRoute findMatchedRoute(String request_uri, String method) {
   return CrossingHelpers.findMatchedRoute(container, routes, request_uri, method);
 }
예제 #5
0
 @Override
 public void init(ServletConfig config) throws ServletException {
   container = CrossingHelpers.initialize(config);
   routes = CrossingHelpers.parseRoutes(container);
 }