예제 #1
0
  protected void _init(PageContext pc, Map<String, String> arguments) {
    this.pc = pc;

    // header
    HttpServletRequest req = pc.getHttpServletRequest();

    header = new StringBuffer();
    createHeader(header, "context-path", req.getContextPath());
    createHeader(header, "remote-user", req.getRemoteUser());
    createHeader(header, "remote-addr", req.getRemoteAddr());
    createHeader(header, "remote-host", req.getRemoteHost());
    createHeader(
        header,
        "script-name",
        StringUtil.emptyIfNull(req.getContextPath())
            + StringUtil.emptyIfNull(req.getServletPath()));
    createHeader(header, "server-name", req.getServerName());
    createHeader(header, "protocol", req.getProtocol());
    createHeader(header, "server-port", Caster.toString(req.getServerPort()));
    createHeader(
        header,
        "path-info",
        StringUtil.replace(
            StringUtil.emptyIfNull(req.getRequestURI()),
            StringUtil.emptyIfNull(req.getServletPath()),
            "",
            true));
    // createHeader(header,"path-translated",pc.getBasePageSource().getDisplayPath());
    createHeader(header, "query-string", req.getQueryString());
    createHeader(header, "unit", unitShortToString(unit));
    createHeader(header, "min-time-nano", min + "");

    content = new StringBuffer();

    // directory
    String strDirectory = arguments.get("directory");
    if (dir == null) {
      if (StringUtil.isEmpty(strDirectory)) {
        dir = getTemp(pc);
      } else {
        try {
          dir = ResourceUtil.toResourceNotExisting(pc, strDirectory, false);
          if (!dir.exists()) {
            dir.createDirectory(true);
          } else if (dir.isFile()) {
            err(
                pc,
                "can not create directory [" + dir + "], there is already a file with same name.");
          }
        } catch (Throwable t) {
          err(pc, t);
          dir = getTemp(pc);
        }
      }
    }
    file = dir.getRealResource((pc.getId()) + "-" + CreateUUID.call(pc) + ".exl");
    file.createNewFile();
    start = System.currentTimeMillis();
  }
예제 #2
0
  private static URL translateURL(URL url) throws MalformedURLException {

    // print.out(url.toExternalForm());
    String path = url.getPath();
    int dotIndex = path.lastIndexOf('.');
    // no dot
    if (dotIndex == -1) {
      if (path.endsWith("/")) return HTTPUtil.removeRef(url);

      return HTTPUtil.removeRef(
          new URL(
              url.getProtocol(),
              url.getHost(),
              url.getPort(),
              path + "/" + StringUtil.emptyIfNull(url.getQuery())));
    }
    // print.out("rem:"+HTTPUtil.removeRef(url));
    return HTTPUtil.removeRef(url);
  }
예제 #3
0
 private void createHeader(StringBuffer sb, String name, String value) {
   sb.append(name);
   sb.append(":");
   sb.append(StringUtil.emptyIfNull(value));
   sb.append("\n");
 }