public void requestResponse(
     HttpServletRequest httpRequest, HttpServletResponse httpResponse, ExecuteResult executeResult)
     throws IOException, ServletException {
   ControllerContext context = HttpBaseController.getControllerContext();
   if (executeResult.getException() != null) {
     PrintWriter print = httpResponse.getWriter();
     if (executeResult.getException() instanceof AjaxException) {
       AjaxException ajaxException = (AjaxException) executeResult.getException();
       print.write(ajaxException.getJsonData());
       print.close();
     } else {
       if (executeResult.getException().getMessage() != null) {
         print.write(executeResult.getException().getMessage());
         print.close();
       } else {
         throw new ServletException(executeResult.getException());
       }
     }
   } else {
     if (executeResult.getResult() != null) {
       PrintWriter print = httpResponse.getWriter();
       if (context.getExecuteMethod() == null
           || context.getExecuteMethod().getAnnotation(Ajax.class) != null) {
         httpResponse.setContentType("application/json;charset=UTF-8");
         print.write(JsonUtil.toJson(executeResult.getResult()));
         print.close();
       } else {
         Iterator<String> keyIterator = context.getModel().keySet().iterator();
         while (keyIterator.hasNext()) {
           String key = keyIterator.next();
           httpRequest.setAttribute(key, context.getModel().get(key));
         }
         if (executeResult.getResult() != null && executeResult.getResult() instanceof String) {
           StringBuilder sb = new StringBuilder();
           sb.append(config.getPrefix());
           sb.append(executeResult.getResult());
           sb.append(config.getSuffix());
           RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(sb.toString());
           dispatcher.forward(httpRequest, httpResponse);
           logger.debug("response = " + sb.toString());
         }
       }
     } else {
       String uri = httpRequest.getRequestURI();
       byte[] bf = uriMap.get(uri);
       if (bf == null) {
         String name = httpRequest.getContextPath();
         String path = uri;
         if (StringUtils.isNotEmpty(name)) {
           path = path.replaceFirst(name, "");
         }
         try {
           InputStream is = httpRequest.getServletContext().getResourceAsStream(path);
           if (is != null) {
             bf = new byte[is.available()];
             is.read(bf);
             is.close();
             uriMap.put(uri, bf);
           }
         } catch (Exception e) {
           logger.error(e.getMessage(), e);
         }
       }
       if (bf != null) {
         if (uri != null && (uri.endsWith(".html"))) {
           httpResponse.getWriter().write(new String(bf, config.getCharacterEncoding()));
         } else {
           if (uri.endsWith(".js")) {
             httpResponse.setHeader("Content-Type", "application/javascript");
           } else if (uri.endsWith(".css")) {
             httpResponse.setHeader("Content-Type", "text/css");
           }
           httpResponse.getOutputStream().write(bf);
         }
       }
     }
   }
 }