Package org.w3c.jigsaw.html

Examples of org.w3c.jigsaw.html.HtmlGenerator


     * Display the collected statistics in an HTML table.
     * @param request TYhe request to process.
     */

    public Reply get (Request request) {
  HtmlGenerator g = new HtmlGenerator("Statistics") ;
  int refresh = getInt(ATTR_REFRESH, REFRESH_DEFAULT);
  if (refresh > 0) {
      g.addMeta("Refresh", Integer.toString(refresh));
  }
  addStyleSheet(g);
  // Dump the statistics:
  httpdStatistics stats = ((httpd)getServer()).getStatistics() ;
  // Uptime:
  g.append("<h1>Server statistics</h1>");
  long start_time = stats.getStartTime();
  long uptime     = (System.currentTimeMillis() - start_time) / 1000;
  g.append("<p>Your server was started on <span class=\"date\">");
  g.append(new Date(start_time).toString());
  long duptime = uptime / (3600L*24L);
  long htemp   = uptime % (3600L*24L);
  long huptime = htemp / 3600L;
  long mtemp   = htemp % 3600L;
  long muptime = mtemp / 60L;
  long suptime = mtemp % 60L;
  g.append("</span>\n<p>It has now been running for <span "+
     "class=\"uptime\">");
  g.append(Long.toString(duptime));
  g.append(" days, ");
  g.append(Long.toString(huptime));
  g.append(" hours, ");
  g.append(Long.toString(muptime));
  g.append(" minutes and ");
  g.append(Long.toString(suptime));
  g.append(" seconds.</span>\n");
  // Hits and bytes:
  long  nb_hits      = stats.getHitCount();
  long  dyn_hits     = stats.getDynamicHitCount();
  long  static_hits  = stats.getStaticHitCount();
  float static_pcent = 0;
  float dyn_pcent    = 0;
  if (nb_hits > 0) {
      static_pcent = ((float) static_hits / (float) nb_hits) * 100;
      dyn_pcent = ((float) dyn_hits / (float) nb_hits) * 100;
  }
  g.append("<ul><li>hits: ", Long.toString(nb_hits));
  g.append("  <ul>\n    <li>static: ",Long.toString(static_hits));
  g.append(" (", Float.toString(static_pcent));
  g.append("%)</li>\n    <li>dynamic: ", Long.toString(dyn_hits));
  g.append(" (", Float.toString(dyn_pcent));
  g.append("%)</li>\n  </ul>\n");
  long bytes = stats.getEmittedBytes();
  long kbytes = bytes / 1024;
  long mbytes = kbytes / 1024;
  long gbytes = mbytes / 1024;
        long tbytes = gbytes / 1024;
  if (tbytes != 0) {
      g.append("</li>\n<li>bytes: ", Long.toString( tbytes),"TB, ");
      g.append(Long.toString(gbytes % 1024), "GB, ");
      g.append(Long.toString(mbytes % 1024), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(bytes % 1024));
  } else if (gbytes != 0) {
      g.append("</li>\n<li>bytes: ", Long.toString(gbytes), "GB, ");
      g.append(Long.toString(mbytes % 1024), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(bytes % 1024));
  } else if (mbytes != 0) {
      g.append("</li>\n<li>bytes: ", Long.toString(mbytes), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(bytes % 1024));
  } else if (kbytes != 0) {
      g.append("</li>\n<li>bytes: ", Long.toString(kbytes), "KB, ");
      g.append(Long.toString(bytes % 1024));
  } else {
      g.append("</li>\n<li>bytes: ", Long.toString(bytes));
  }
  // avg hit/sec
  float avghits = 0;
  float avghitsday = 0;
  if (uptime > 0) {
      avghits = ((float) nb_hits) / ((float) uptime);
      avghitsday = ((float) nb_hits * 86400) / ((float) uptime);
  }
  g.append("</li>\n<li>Average hits per second: ");
  g.append(Float.toString(avghits));
  g.append("</li>\n<li>Average hits per day: ");
  g.append(Integer.toString((int) avghitsday));
  // avg bytes/hit
  long avgbph;

  if (nb_hits > 0) {
      avgbph = bytes / nb_hits;
  } else {
      avgbph = 0;
  }
  kbytes = avgbph / 1024;
  mbytes = kbytes / 1024;
  gbytes = mbytes / 1024;
  if (gbytes != 0) {
      g.append("</li>\n<li>Average bytes per hit: ");
      g.append(Long.toString(gbytes), "GB, ");
      g.append(Long.toString(mbytes % 1024), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(avgbph % 1024));
  } else if (mbytes != 0) {
      g.append("</li>\n<li>Average bytes per hit: ");
      g.append(Long.toString(mbytes), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(avgbph % 1024));     
  } else if (kbytes != 0) {
      g.append("</li>\n<li>Average bytes per hit: ");
      g.append(Long.toString(kbytes), "KB, ");
      g.append(Long.toString(avgbph % 1024));
  } else {
      g.append("</li>\n<li>Average bytes per hit: ",
         Long.toString(avgbph));
  }
  // avg throughput
  long avgbps = 0;
  if (uptime > 0) {
      avgbps = bytes / uptime;
  }
  kbytes = avgbps / 1024;
  mbytes = kbytes / 1024;
  gbytes = mbytes / 1024;
  if (gbytes != 0) {
      g.append("</li>\n<li>Average bytes per second: ");
      g.append(Long.toString(gbytes)"GB, ");
      g.append(Long.toString(mbytes % 1024), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(avgbps % 1024));
  } else if (mbytes != 0) {
      g.append("</li>\n<li>Average bytes per second: ");
      g.append(Long.toString(mbytes), "MB, ");
      g.append(Long.toString(kbytes % 1024), "KB, ");
      g.append(Long.toString(avgbps % 1024));
  } else if (kbytes != 0) {
      g.append("</li>\n<li>Average bytes per second: ");
      g.append(Long.toString(kbytes), "KB, ");
      g.append(Long.toString(avgbps % 1024));
  } else {
      g.append("</li>\n<li>Average bytes per second: ",
         Long.toString(avgbps));
  }   
  g.append("</li>\n</ul>");
  // Request times:
  g.append(time_tbl) ;
  g.append("<td>"
     , Long.toString(stats.getMinRequestTime())
     , " <span class=\"unit\">ms</span>") ;
  g.append("</td>\n<td>"
     , Long.toString(stats.getMeanRequestTime())
     , " <span class=\"unit\">ms</span>") ;
  g.append("</td>\n<td>"
     , Long.toString(stats.getMaxRequestTime())
     , " <span class=\"unit\">ms</span>") ;
  g.append("</td>\n</table>\n") ;

  // static
  if (static_hits>0) {
      g.append(sta_time_tbl) ;
      g.append("<td>"
         , Long.toString(stats.getMinStaticRequestTime())
         , " <span class=\"unit\">ms</span>") ;
      g.append("</td>\n<td>"
         , Long.toString(stats.getMeanStaticRequestTime())
         , " <span class=\"unit\">ms</span>") ;
      g.append("</td>\n<td>"
         , Long.toString(stats.getMaxStaticRequestTime())
         , " <span class=\"unit\">ms</span>") ;
      g.append("</td>\n</table>\n") ;
  }

  // dynamic
  if (dyn_hits>0) {
      g.append(dyn_time_tbl) ;
      g.append("<td>"
         , Long.toString(stats.getMinDynamicRequestTime())
         , " <span class=\"unit\">ms</span>") ;
      g.append("</td>\n<td>"
         , Long.toString(stats.getMeanDynamicRequestTime())
         , " <span class=\"unit\">ms</span>") ;
      g.append("</td>\n<td>"
         , Long.toString(stats.getMaxDynamicRequestTime())
         , " <span class=\"unit\">ms</span>") ;
      g.append("</td>\n</table>\n") ;
  }

  // Get Server internal Stats
  try {
      g.append(((httpd)getServer()).getHTMLStatus());
  } catch (Exception ex) {
      ex.printStackTrace();
  }
  Reply reply = request.makeReply(HTTP.OK) ;
  reply.setNoCache();
View Full Code Here


    public Reply handle (Request request, URLDecoder data)
  throws ProtocolException
    {
  // Now we just dump back the variables we got:
  HtmlGenerator g = new HtmlGenerator ("Form decoded values") ;
  if (data != null) {
      Enumeration   e = data.keys() ;
      g.append ("<p>List of variables and values:</p><ul>") ;
      while ( e.hasMoreElements () ) {
    String name = (String) e.nextElement() ;
    g.append ("<li><em>"+
        name+"</em> = <b>"+
        data.getValue(name)+
        "</b></li>");
      }
      g.append ("</ul>") ;
  } else {
      g.append ("<p>Not with the application/x-www-form-urlencoded"
          +" mime type");
  }
  Reply reply = request.makeReply(HTTP.OK) ;
  reply.setStream (g) ;
  return reply ;
View Full Code Here

      e.setProxyAuthenticate(challenge);
  } else {
      e = request.makeReply(HTTP.UNAUTHORIZED);
      e.setWWWAuthenticate (challenge);
  }
  HtmlGenerator g = new HtmlGenerator("Unauthorized");
  g.append ("<h1>Unauthorized access</h1>"
      + "<p>You are denied access to this resource.");
  e.setStream(g);
  throw new HTTPException (e);
    }
View Full Code Here

    // Stop the thread
    chkpr.stop();
      }
  }
  // Emit output:
  HtmlGenerator g = new HtmlGenerator("CheckpointResource");
  addStyleSheet(g);
  g.append("<h1>CheckpointResource status</h1>");
  g.append("<p>Checkpoint is currently "
     , ((chkpr.thread == null) ? " stopped " : "running")
     , ".");
  g.append("<hr>You can:<p><dl>");
  g.append("<dt><a href=\""
     , chkpr.getURLPath()
     , "?start\">start</a><dd>Start the checkpointer.");
  g.append("<dt><a href=\""
     , chkpr.getURLPath()
     , "?stop\">stop</a><dd>Stop the checkpointer.");
  g.append("</dl><hr>Last checkpoint at <strong>"
     , ((chkpr.checkpoint == null)
        ? "no checkpoint run yet"
        : chkpr.checkpoint.toString())
     , "</strong>.");
  Reply reply = createDefaultReply(request, HTTP.OK);
View Full Code Here

  }
   
  int len = -1;
  if ((len = notsupported.size()) > 0) {
      Reply error   = request.makeReply(HTTP.NOT_EXTENDED) ;
      HtmlGenerator content = new HtmlGenerator("Error");
      content.append("<h1>Mandatory extension(s) not supported:",
         "</h1><p>\n");
      content.append("<ul>\n");
      for (int i = 0; i < len; i++)
    content.append("<li> "+(String)notsupported.elementAt(i)+"\n");
      content.append("</ul>\n");
      error.setStream(content);
      throw new HTTPException(error);
  }
    }
View Full Code Here

      e.setProxyAuthenticate(new_c);
  } else {
      e = request.makeReply(HTTP.UNAUTHORIZED);
      e.setWWWAuthenticate (new_c);
  }
  HtmlGenerator g = new HtmlGenerator("Unauthorized");
  g.append ("<h1>Unauthorized access</h1>"
      + "<p>You are denied access to this resource.");
  e.setStream(g);
  throw new HTTPException (e);
    }
View Full Code Here

    }
      } catch (Exception ex) {
    ex.printStackTrace();
      }
      reply.setLocation(loc);
      HtmlGenerator g = new HtmlGenerator("Moved");
      g.append("<P>This resources has moved, click on the link if your"
         + " browser doesn't support automatic redirection<BR>"+
         "<A HREF=\""+loc.toExternalForm()+"\">"+
         loc.toExternalForm()+"</A>");
      reply.setStream(g);
      return reply ;
View Full Code Here

      } else if (cal.after(c_b)) {
    reply = request.makeReply(HTTP.SERVICE_UNAVAILABLE);
      }
  }
  if (reply != null) {
      HtmlGenerator g = new HtmlGenerator("Service Unavailable");
      g.append("You may retry after the delay or the date given");
      reply.setStream(g);
  }
  return reply;
    }
View Full Code Here

         int status,
         String title,
         String msg)
    {
  Reply error = request.makeReply(status);
  HtmlGenerator g = CvsFrame.getHtmlGenerator(title);
  g.append("<span class=\"title\">",title,"</span>\n");
  g.append("<p>",msg);
  error.setStream(g);
  return error;
    }
View Full Code Here

  return Integer.toString((int) p)+"%";
    }

    public Reply get(Request request) {
  Reply         r = createDefaultReply(request, HTTP.OK);
  HtmlGenerator g = new HtmlGenerator("Proxy statistics");
  int           c = proxy.reqcount+proxy.reqerred;
 
  if ( c == 0 )
      c = 1;
  g.addMeta("Refresh", "30");
  proxy.addStyleSheet(g);
  g.append("<h1>Proxy statistics</h1>");
  g.append("<p>The proxy was last started at: <em>"
                 + startdate
                 + "</em>");
  g.append("<p><table align=\"center\" border=\"1\"");
  g.append("<tr><th colspan=\"3\">Counter<th>count<th>percentage");
  // The total number of hits to the proxy:
  g.append("<tr><td colspan=\"3\">Total number of handled requests");
  g.append("<td align=center>", Integer.toString(c));
  g.append("<td align=center>", percentage(c, c));
  // The total number of errors:
  g.append("<tr><td width=50><td colspan=\"2\">Erred requests");
  g.append("<td align=center>", Integer.toString(proxy.reqerred));
  g.append("<td align=center>", percentage(proxy.reqerred, c));
  // The total number of ICP redirects:
  g.append("<tr><td width=50><td colspan=\"2\">ICP redirects");
  g.append("<td align=center>", Integer.toString(proxy.cache_icps));
  g.append("<td align=center>", percentage(proxy.cache_icps, c));
  // The total number of no-cache:
  g.append("<tr><td width=50><td colspan=\"2\">Non cacheable");
  g.append("<td align=center>", Integer.toString(proxy.cache_nocache));
  g.append("<td align=center>", percentage(proxy.cache_nocache, c));
  // Cache accesses:
  int cached = (proxy.cache_hits +
          proxy.cache_misses +
          proxy.cache_revalidations +
          proxy.cache_retrievals);
  g.append("<tr><td width=50><td colspan=\"2\">Cache Accesses");
  g.append("<td align=center>", Integer.toString(cached));
  g.append("<td align=center>", percentage(cached, c));
  // Hits (served by cache)
  g.append("<tr><td width=50><td width=50><td>Hits (served by cache)");
  g.append("<td align=center>", Integer.toString(proxy.cache_hits));
  g.append("<td align=center>", percentage(proxy.cache_hits, c));
  // Hits (revalidations)
  g.append("<tr><td width=50><td width=50><td>Hits (revalidations)");
  g.append("<td align=center>"
     , Integer.toString(proxy.cache_revalidations));
  g.append("<td align=center>"
     , percentage(proxy.cache_revalidations, c));
  // Misses (no cache entry)
  g.append("<tr><td width=50><td width=50><td>Misses (no entry)");
  g.append("<td align=center>", Integer.toString(proxy.cache_misses));
  g.append("<td align=center>", percentage(proxy.cache_misses, c));
  // Misses (retrievals)
  g.append("<tr><td width=50><td width=50><td>Misses (retrievals)");
  g.append("<td align=center>",Integer.toString(proxy.cache_retrievals));
  g.append("<td align=center>", percentage(proxy.cache_retrievals, c));
  g.append("</table>");
  // Some goodies:
  g.append("<hr>Generated by <i>"
     , proxy.getServer().getURL().toExternalForm());
  r.setStream(g);
  r.addPragma("no-cache");
  r.setNoCache();
  return r;
View Full Code Here

TOP

Related Classes of org.w3c.jigsaw.html.HtmlGenerator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.