code: public String processIndex(String content) throws IOException, MdwException {
          String contents = ExpressionUtil.substitute(content, WebAppContext.getMdw(), true);
          StringBuilder builder = new StringBuilder();
          builder.append("<!-- processed by MDW root servlet -->\n");
          for (String line : contents.split("\\r?\\n")) {
              builder.append(processIndexLine(line)).append("\n");
          }
          return builder.toString();
      }
docs: Handles user-custom scripts and stylesheets by injecting into index.html.
  Also substitutes ${mdw.*} expressions based on the Mdw model object.
  Also handles the case where index.html itself is customized.
  TODO: some kind of caching that still provides dynamicism