ReqState rs)
OpendapHttpDispatchHandler odh)
    public static void sendSystemProperties(HttpServletRequest request,                                            HttpServletResponse response,                                            ReqState rs)            throws IOException {        response.setHeader("XDODS-Server", rs.getXDODSServer());        response.setHeader("XOPeNDAP-Server", rs.getXOPeNDAPServer());        response.setHeader("XDAP", rs.getXDAP(request));        response.setContentType("text/html");        response.setHeader("Content-Description", "dods_status");        PrintWriter pw = new PrintWriter(response.getOutputStream());        pw.println("<html>");        pw.println("<title>System Properties</title>");        pw.println("<hr>");        pw.println("<body><h2>System Properties</h2>");        pw.println("<h3>Date: " + new Date() + "</h3>");        Properties sysp = System.getProperties();        Enumeration e = sysp.propertyNames();        pw.println("<ul>");        while (e.hasMoreElements()) {            String name = (String) e.nextElement();            String value = System.getProperty(name);            pw.println("<li>" + name + ": " + value + "</li>");        }        pw.println("</ul>");        pw.println("<h3>Runtime Info:</h3>");        Runtime rt = Runtime.getRuntime();        pw.println("JVM Max Memory:   " + (rt.maxMemory() / 1024) / 1000. + " MB (JVM Maximum Allowable Heap)<br>");        pw.println("JVM Total Memory: " + (rt.totalMemory() / 1024) / 1000. + " MB (JVM Heap size)<br>");        pw.println("JVM Free Memory:  " + (rt.freeMemory() / 1024) / 1000. + " MB (Unused part of heap)<br>");        pw.println("JVM Used Memory:  " + ((rt.totalMemory() - rt.freeMemory()) / 1024) / 1000. + " MB (Currently active memory)<br>");        pw.println("<hr>");        pw.println("</body>");        pw.println("</html>");        pw.flush();        response.setStatus(HttpServletResponse.SC_OK);    }