用PrintWriter解决servlet的中文输出问题

时间:2021-01-02 06:03:01

在Java的Servlet中用ServletOutputStream.print()方法输出中文会有问题,如

ServletOutputStream out = response.getOutputStream();
out.print("你好");

在tomcat6会出现错误提示:
java.io.CharConversionException: Not an ISO 8859-1 character

在tomcat5或tomcat4能显示页面,但中文也是乱码。

解决办法:
 response.setCharacterEncoding("UTF-8"); (也可以是其他编码如GBK)
 response.setContentType("text/html");
或者直接
 response.setContentType("text/html;charset=UTF-8");

然后

 PrintWriter out = response.getWriter();
 out.print("你好");
就能正常显示中文。

用此办法解决了proxool控制台org.logicalcobwebs.proxool.admin.servlet.AdminServlet不能显示中文的bug

该AdminServlet的doSnapshot()输出时间:

 DateFormat DATE_FORMAT = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
 DATE_FORMAT.format(snapshot.getDateStarted())

正常应该显示如下格式:
 29-二月-2008 00:28:42

其中"月份"带了中文。

为了正常显示中文,把org.logicalcobwebs.proxool.admin.servlet.AdminServlet源代码抽出来修改

加入PrintWriter包:
 import java.io.PrintWriter;
将所有的ServletOutputStream用PrintWriter替换,所有的getOutputStream用getWriter替换

在doGet()中的response.setHeader("Pragma", "no-cache")语句后添加上编码:
        response.setCharacterEncoding("UTF-8");

编译该AdminServlet.java,运行一切ok!

附源代码:

  另,对AdminServlet显示数据库连接url带用户名密码的bug做了修改:

        String url= drillDownConnection.getDelegateUrl();


        String[] urls=url.split("//?"); //这种方式只能解决mysql数据库的url,可以考虑

干脆不显示url,就能避免用户名密码暴露。

        out.print(urls[0]);//Hide the user & password of url

----------------------------------

 

用PrintWriter解决servlet的中文输出问题/*
用PrintWriter解决servlet的中文输出问题 * This software is released under a licence similar to the Apache Software Licence.
用PrintWriter解决servlet的中文输出问题 * See org.logicalcobwebs.proxool.package.html for details.
用PrintWriter解决servlet的中文输出问题 * The latest version is available at 
http://proxool.sourceforge.net
用PrintWriter解决servlet的中文输出问题 
*/

用PrintWriter解决servlet的中文输出问题
package org.logicalcobwebs.proxool.admin.servlet;
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题
import org.apache.commons.logging.Log;
用PrintWriter解决servlet的中文输出问题
import org.apache.commons.logging.LogFactory;
用PrintWriter解决servlet的中文输出问题
import org.logicalcobwebs.proxool.*;
用PrintWriter解决servlet的中文输出问题
import org.logicalcobwebs.proxool.admin.SnapshotIF;
用PrintWriter解决servlet的中文输出问题
import org.logicalcobwebs.proxool.admin.StatisticsIF;
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题
import javax.servlet.ServletConfig;
用PrintWriter解决servlet的中文输出问题
import javax.servlet.ServletException;
用PrintWriter解决servlet的中文输出问题
import javax.servlet.http.HttpServlet;
用PrintWriter解决servlet的中文输出问题
import javax.servlet.http.HttpServletRequest;
用PrintWriter解决servlet的中文输出问题
import javax.servlet.http.HttpServletResponse;
用PrintWriter解决servlet的中文输出问题
import java.io.IOException;
用PrintWriter解决servlet的中文输出问题
import java.io.PrintWriter;
用PrintWriter解决servlet的中文输出问题
import java.text.DateFormat;
用PrintWriter解决servlet的中文输出问题
import java.text.DecimalFormat;
用PrintWriter解决servlet的中文输出问题
import java.text.SimpleDateFormat;
用PrintWriter解决servlet的中文输出问题
import java.util.Calendar;
用PrintWriter解决servlet的中文输出问题
import java.util.Date;
用PrintWriter解决servlet的中文输出问题
import java.util.Iterator;
用PrintWriter解决servlet的中文输出问题
import java.util.Properties;
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题
/**
用PrintWriter解决servlet的中文输出问题 * Use this to admin each pool within Proxool. It acts like a normal
用PrintWriter解决servlet的中文输出问题 * servlet., so just configure it within your web app as you see fit.
用PrintWriter解决servlet的中文输出问题 * For example, within web.xml:
用PrintWriter解决servlet的中文输出问题 * <pre>
用PrintWriter解决servlet的中文输出问题 *   &lt;servlet&gt;
用PrintWriter解决servlet的中文输出问题 *       &lt;servlet-name&gt;Admin&lt;/servlet-name&gt;
用PrintWriter解决servlet的中文输出问题 *       &lt;servlet-class&gt;org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;/servlet-class&gt;
用PrintWriter解决servlet的中文输出问题 *       &lt;init-param&gt;
用PrintWriter解决servlet的中文输出问题 *            &lt;param-name&gt;output&lt;/param-name&gt;
用PrintWriter解决servlet的中文输出问题 *            &lt;param-value&gt;full|simple&lt;/param-value&gt;
用PrintWriter解决servlet的中文输出问题 *        &lt;/init-param&gt;
用PrintWriter解决servlet的中文输出问题 *        &lt;init-param&gt;
用PrintWriter解决servlet的中文输出问题 *            &lt;param-name&gt;cssFile&lt;/param-name&gt;
用PrintWriter解决servlet的中文输出问题 *            &lt;param-value&gt;/my_path/my.css&lt;/param-value&gt;
用PrintWriter解决servlet的中文输出问题 *        &lt;/init-param&gt;
用PrintWriter解决servlet的中文输出问题 *   &lt;/servlet&gt;
用PrintWriter解决servlet的中文输出问题 *   &lt;servlet-mapping&gt;
用PrintWriter解决servlet的中文输出问题 *       &lt;servlet-name&gt;Admin&lt;/servlet-name&gt;
用PrintWriter解决servlet的中文输出问题 *       &lt;url-pattern&gt;/proxool&lt;/url-pattern&gt;
用PrintWriter解决servlet的中文输出问题 *   &lt;/servlet-mapping&gt;
用PrintWriter解决servlet的中文输出问题 * </pre>
用PrintWriter解决servlet的中文输出问题 *
用PrintWriter解决servlet的中文输出问题 * Options:
用PrintWriter解决servlet的中文输出问题 * <ul>
用PrintWriter解决servlet的中文输出问题 *   <li>output: full|simple. "full" means with HTML header and body tags "simple" means
用PrintWriter解决servlet的中文输出问题 *   just the HTML. Choose "simple" if you are including this servlet within your own
用PrintWriter解决servlet的中文输出问题 *   web page. Note that if you choose simple output then you're probably going to want
用PrintWriter解决servlet的中文输出问题 *   to consider supplying some CSS to make it look nice.</li>
用PrintWriter解决servlet的中文输出问题 *   <li>cssFile: If you choose full output (see above) then some CSS is included, inline,
用PrintWriter解决servlet的中文输出问题 *   in the HTML header. If you specify a URL here then that file is also linked to. It is
用PrintWriter解决servlet的中文输出问题 *   linked after the inline CSS so you only have to override thos styles you want to be
用PrintWriter解决servlet的中文输出问题 *   different.</li>
用PrintWriter解决servlet的中文输出问题 * </ul>
用PrintWriter解决servlet的中文输出问题 *
用PrintWriter解决servlet的中文输出问题 * 
@author bill
用PrintWriter解决servlet的中文输出问题 * 
@author $Author: billhorsman $ (current maintainer)
用PrintWriter解决servlet的中文输出问题 * 
@version $Revision: 1.14 $, $Date: 2006/06/09 17:32:54 $
用PrintWriter解决servlet的中文输出问题 * 
@since Proxool 0.7
用PrintWriter解决servlet的中文输出问题 * @modified by goodhumor $Date: 2008/02/29 00:28:42$
用PrintWriter解决servlet的中文输出问题 
*/

用PrintWriter解决servlet的中文输出问题
public class AdminServlet extends HttpServlet {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private static final Log LOG = LogFactory.getLog(ProxoolAdminServlet.class);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * The CSS class for a connection in different states:
用PrintWriter解决servlet的中文输出问题     * <ul>
用PrintWriter解决servlet的中文输出问题     *   <li>null</li>
用PrintWriter解决servlet的中文输出问题     *   <li>available</li>
用PrintWriter解决servlet的中文输出问题     *   <li>active</li>
用PrintWriter解决servlet的中文输出问题     *   <li>offline</li>
用PrintWriter解决servlet的中文输出问题     * </ul>
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String[] STATUS_CLASSES = {"null""available""active""offline"};
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * OUtput full HTML including &lt;HTML&gt;, &lt;HEAD&gt; and &lt;BODY&gt; tags.
用PrintWriter解决servlet的中文输出问题     * 
@see #output
用PrintWriter解决servlet的中文输出问题     * 
@see ProxoolAdminServlet configuration
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
public static final String OUTPUT_FULL = "full";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * OUtput simple HTML <em>excluding</em> &lt;HTML&gt;, &lt;HEAD&gt; and &lt;BODY&gt; tags.
用PrintWriter解决servlet的中文输出问题     * 
@see #output
用PrintWriter解决servlet的中文输出问题     * 
@see ProxoolAdminServlet configuration
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
public static final String OUTPUT_SIMPLE = "simple";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Either {
@link #OUTPUT_FULL} (default) or {@link #OUTPUT_SIMPLE}
用PrintWriter解决servlet的中文输出问题     * 
@see ProxoolAdminServlet configuration
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private String output;
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * A valid URLL that can be linked to to override default, inline CSS.
用PrintWriter解决servlet的中文输出问题     * 
@see ProxoolAdminServlet configuration
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private String cssFile;
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Used as part of the CSS class
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String STATISTIC = "statistic";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Used as part of the CSS class
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String CORE_PROPERTY = "core-property";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Used as part of the CSS class
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String STANDARD_PROPERTY = "standard-property";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Used as part of the CSS class
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String DELEGATED_PROPERTY = "delegated-property";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Used as part of the CSS class
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String SNAPSHOT = "snapshot";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
public void init(ServletConfig servletConfig) throws ServletException {
用PrintWriter解决servlet的中文输出问题        
super.init(servletConfig);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// Get output parameter. Default to OUTPUT_FULL.
用PrintWriter解决servlet的中文输出问题
        output = servletConfig.getInitParameter("output");
用PrintWriter解决servlet的中文输出问题        
if (output != null{
用PrintWriter解决servlet的中文输出问题            
if (output.equalsIgnoreCase(OUTPUT_FULL)) {
用PrintWriter解决servlet的中文输出问题                output 
= OUTPUT_FULL;
用PrintWriter解决servlet的中文输出问题            }
 else if (output.equalsIgnoreCase(OUTPUT_SIMPLE)) {
用PrintWriter解决servlet的中文输出问题                output 
= OUTPUT_SIMPLE;
用PrintWriter解决servlet的中文输出问题            }
 else {
用PrintWriter解决servlet的中文输出问题                LOG.warn(
"Unrecognised output parameter for " + this.getClass().getName() + ". Expected: " + OUTPUT_FULL + " or " + OUTPUT_SIMPLE);
用PrintWriter解决servlet的中文输出问题                output 
= null;
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        
if (output == null{
用PrintWriter解决servlet的中文输出问题            output 
= OUTPUT_FULL;
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        cssFile 
= servletConfig.getInitParameter("cssFile");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * HH:mm:ss
用PrintWriter解决servlet的中文输出问题     * 
@see #formatMilliseconds
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * dd-MMM-yyyy HH:mm:ss
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("0.00");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private static final String DETAIL = "detail";
用PrintWriter解决servlet的中文输出问题    
private static final String DETAIL_MORE = "more";
用PrintWriter解决servlet的中文输出问题    
private static final String DETAIL_LESS = "less";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * The request parameter name that defines:
用PrintWriter解决servlet的中文输出问题     * <ol>
用PrintWriter解决servlet的中文输出问题     *   <li>{
@link #TAB_DEFINITION} (default)</li>
用PrintWriter解决servlet的中文输出问题     *   <li>{
@link #TAB_SNAPSHOT}</li>
用PrintWriter解决servlet的中文输出问题     *   <li>{
@link #TAB_STATISTICS}</li>
用PrintWriter解决servlet的中文输出问题     *  </ol>
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String TAB = "tab";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * 
@see #TAB
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String TAB_DEFINITION = "definition";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * 
@see #TAB
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String TAB_SNAPSHOT = "snapshot";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * 
@see #TAB
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String TAB_STATISTICS = "statistics";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * The request parameter name that defines the pool
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String ALIAS = "alias";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * If we are drilling down into a connection (on the {
@link #TAB_SNAPSHOT snapshot} tab then
用PrintWriter解决servlet的中文输出问题     * this points to the {
@link org.logicalcobwebs.proxool.ProxyConnection#getId() ID} we are
用PrintWriter解决servlet的中文输出问题     * getting detailed information for.
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static final String CONNECTION_ID = "id";
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Delegate to {
@link #doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)}
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
用PrintWriter解决servlet的中文输出问题        doGet(request, response);
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Show the details for a pool.
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        response.setHeader(
"Pragma""no-cache");
用PrintWriter解决servlet的中文输出问题        response.setCharacterEncoding(
"UTF-8");
用PrintWriter解决servlet的中文输出问题        String link 
= request.getRequestURI();
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// Check the alias and if not defined and there is only one
用PrintWriter解决servlet的中文输出问题        
// then use that.
用PrintWriter解决servlet的中文输出问题
        String alias = request.getParameter(ALIAS);
用PrintWriter解决servlet的中文输出问题        
// Check we can find the pool.
用PrintWriter解决servlet的中文输出问题
        ConnectionPoolDefinitionIF def = null;
用PrintWriter解决servlet的中文输出问题        
if (alias != null{
用PrintWriter解决servlet的中文输出问题            
try {
用PrintWriter解决servlet的中文输出问题                def 
= ProxoolFacade.getConnectionPoolDefinition(alias);
用PrintWriter解决servlet的中文输出问题            }
 catch (ProxoolException e) {
用PrintWriter解决servlet的中文输出问题                alias 
= null;
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        String[] aliases 
= ProxoolFacade.getAliases();
用PrintWriter解决servlet的中文输出问题        
if (alias == null{
用PrintWriter解决servlet的中文输出问题            
if (aliases.length > 0{
用PrintWriter解决servlet的中文输出问题                alias 
= aliases[0];
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        
if (def == null && alias != null{
用PrintWriter解决servlet的中文输出问题            
try {
用PrintWriter解决servlet的中文输出问题                def 
= ProxoolFacade.getConnectionPoolDefinition(alias);
用PrintWriter解决servlet的中文输出问题            }
 catch (ProxoolException e) {
用PrintWriter解决servlet的中文输出问题                
throw new ServletException("Couldn't find pool with alias " + alias);
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        String tab 
= request.getParameter(TAB);
用PrintWriter解决servlet的中文输出问题        
if (tab == null{
用PrintWriter解决servlet的中文输出问题            tab 
= TAB_DEFINITION;
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// If we are showing the snapshot, are we showing it in detail or not?
用PrintWriter解决servlet的中文输出问题
        String snapshotDetail = request.getParameter(DETAIL);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// If we are showing the snapshot, are we drilling down into a connection?
用PrintWriter解决servlet的中文输出问题
        String snapshotConnectionId = request.getParameter(CONNECTION_ID);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
try {
用PrintWriter解决servlet的中文输出问题            
if (output.equals(OUTPUT_FULL)) {
用PrintWriter解决servlet的中文输出问题                response.setContentType(
"text/html");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                openHtml(response.getWriter());
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题            response.getWriter().println(
"<div class="version">Proxool " + Version.getVersion() + "</div>");
用PrintWriter解决servlet的中文输出问题            doList(response.getWriter(), alias, tab, link);
用PrintWriter解决servlet的中文输出问题            
// Skip everything if there aren't any pools
用PrintWriter解决servlet的中文输出问题
            if (aliases != null && aliases.length > 0{
用PrintWriter解决servlet的中文输出问题                StatisticsIF[] statisticsArray 
= ProxoolFacade.getStatistics(alias);
用PrintWriter解决servlet的中文输出问题                
final boolean statisticsAvailable = (statisticsArray != null && statisticsArray.length > 0);
用PrintWriter解决servlet的中文输出问题                
final boolean statisticsComingSoon = def.getStatistics() != null;
用PrintWriter解决servlet的中文输出问题                
// We can't be on the statistics tab if there are no statistics
用PrintWriter解决servlet的中文输出问题
                if (!statisticsComingSoon && tab.equals(TAB_STATISTICS)) {
用PrintWriter解决servlet的中文输出问题                    tab 
= TAB_DEFINITION;
用PrintWriter解决servlet的中文输出问题                }

用PrintWriter解决servlet的中文输出问题                doTabs(response.getWriter(), alias, link, tab, statisticsAvailable, statisticsComingSoon);
用PrintWriter解决servlet的中文输出问题                
if (tab.equals(TAB_DEFINITION)) {
用PrintWriter解决servlet的中文输出问题                    doDefinition(response.getWriter(), def);
用PrintWriter解决servlet的中文输出问题                }
 else if (tab.equals(TAB_SNAPSHOT)) {
用PrintWriter解决servlet的中文输出问题                    doSnapshot(response.getWriter(), def, link, snapshotDetail, snapshotConnectionId);
用PrintWriter解决servlet的中文输出问题                }
 else if (tab.equals(TAB_STATISTICS)) {
用PrintWriter解决servlet的中文输出问题                    doStatistics(response.getWriter(), statisticsArray, def);
用PrintWriter解决servlet的中文输出问题                }
 else {
用PrintWriter解决servlet的中文输出问题                    
throw new ServletException("Unrecognised tab '" + tab + "'");
用PrintWriter解决servlet的中文输出问题                }

用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题        }
 catch (ProxoolException e) {
用PrintWriter解决servlet的中文输出问题            
throw new ServletException("Problem serving Proxool Admin", e);
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
if (output.equals(OUTPUT_FULL)) {
用PrintWriter解决servlet的中文输出问题            closeHtml(response.getWriter());
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Output the tabs that we are showing at the top of the page
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write the HTNL to
用PrintWriter解决servlet的中文输出问题     * 
@param alias the current pool
用PrintWriter解决servlet的中文输出问题     * 
@param link the URL to get back to this servlet
用PrintWriter解决servlet的中文输出问题     * 
@param tab the active tab
用PrintWriter解决servlet的中文输出问题     * 
@param statisticsAvailable whether statistics are available (true if configured and ready)
用PrintWriter解决servlet的中文输出问题     * 
@param statisticsComingSoon whether statistics will be available (true if configured but not ready yet)
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void doTabs(PrintWriter out, String alias, String link, String tab, boolean statisticsAvailable, boolean statisticsComingSoon) throws IOException {
用PrintWriter解决servlet的中文输出问题        out.println(
"<ul>");
用PrintWriter解决servlet的中文输出问题        out.println(
"<li class="" + (tab.equals(TAB_DEFINITION) ? "active" : "inactive"+ ""><a class="quiet" href="" + link + "?alias=" + alias + "&tab=" + TAB_DEFINITION + "">Definition</a></li>");
用PrintWriter解决servlet的中文输出问题        out.println(
"<li class="" + (tab.equals(TAB_SNAPSHOT) ? "active" : "inactive"+ ""><a class="quiet" href="" + link + "?alias=" + alias + "&tab=" + TAB_SNAPSHOT + "">Snapshot</a></li>");
用PrintWriter解决servlet的中文输出问题        
if (statisticsAvailable) {
用PrintWriter解决servlet的中文输出问题            out.println(
"<li class="" + (tab.equals(TAB_STATISTICS) ? "active" : "inactive"+ ""><a class="quiet" href="" + link + "?alias=" + alias + "&tab=" + TAB_STATISTICS + "">Statistics</a></li>");
用PrintWriter解决servlet的中文输出问题        }
 else if (statisticsComingSoon) {
用PrintWriter解决servlet的中文输出问题            out.println(
"<li class="disabled">Statistics</li>");
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        out.println(
"</ul>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Output the statistics. If there are more than one set of statistics then show them all.
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write HTML to
用PrintWriter解决servlet的中文输出问题     * 
@param statisticsArray the statistics we have ready to see
用PrintWriter解决servlet的中文输出问题     * 
@param cpd defines the connection
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void doStatistics(PrintWriter out, StatisticsIF[] statisticsArray, ConnectionPoolDefinitionIF cpd) throws IOException {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
for (int i = 0; i < statisticsArray.length; i++{
用PrintWriter解决servlet的中文输出问题            StatisticsIF statistics 
= statisticsArray[i];
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            openDataTable(out);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            printDefinitionEntry(out, ProxoolConstants.ALIAS, cpd.getAlias(), CORE_PROPERTY);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// Period
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Period", TIME_FORMAT.format(statistics.getStartDate()) + " to " + TIME_FORMAT.format(statistics.getStopDate()), STATISTIC);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// Served
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Served", statistics.getServedCount() + " (" + DECIMAL_FORMAT.format(statistics.getServedPerSecond()) + "/s)", STATISTIC);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// Refused
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Refused", statistics.getRefusedCount() + " (" + DECIMAL_FORMAT.format(statistics.getRefusedPerSecond()) + "/s)", STATISTIC);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// averageActiveTime
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Average active time", DECIMAL_FORMAT.format(statistics.getAverageActiveTime() / 1000+ "s", STATISTIC);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// activityLevel
用PrintWriter解决servlet的中文输出问题
            StringBuffer activityLevelBuffer = new StringBuffer();
用PrintWriter解决servlet的中文输出问题            
int activityLevel = (int) (100 * statistics.getAverageActiveCount() / cpd.getMaximumConnectionCount());
用PrintWriter解决servlet的中文输出问题            activityLevelBuffer.append(activityLevel);
用PrintWriter解决servlet的中文输出问题            activityLevelBuffer.append(
"%<br/>");
用PrintWriter解决servlet的中文输出问题            String[] colours 
= {"0000ff""eeeeee"};
用PrintWriter解决servlet的中文输出问题            
int[] lengths = {activityLevel, 100 - activityLevel};
用PrintWriter解决servlet的中文输出问题            drawBarChart(activityLevelBuffer, colours, lengths);
用PrintWriter解决servlet的中文输出问题            printDefinitionEntry(out, 
"Activity level", activityLevelBuffer.toString(), STATISTIC);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            closeTable(out);
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * We can draw a bar chart simply enough. The two arrays passed as parameters must be of equal length
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write the HTML
用PrintWriter解决servlet的中文输出问题     * 
@param colours the colur (CSS valid string) for each segment
用PrintWriter解决servlet的中文输出问题     * 
@param lengths the length of each segment. Can be any size since the chart just takes up as much room
用PrintWriter解决servlet的中文输出问题     * as possible as uses the relative length of each segment.
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void drawBarChart(StringBuffer out, String[] colours, int[] lengths) {
用PrintWriter解决servlet的中文输出问题        out.append(
"<table style="margin: 8px; font-size: 50%;" width="100%" border="0" cellspacing="0" cellpadding="0"><tr>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// Calculate total length
用PrintWriter解决servlet的中文输出问题
        int totalLength = 0;
用PrintWriter解决servlet的中文输出问题        
for (int i = 0; i < colours.length; i++{
用PrintWriter解决servlet的中文输出问题            totalLength 
+= lengths[i];
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// Draw segments
用PrintWriter解决servlet的中文输出问题
        for (int j = 0; j < colours.length; j++{
用PrintWriter解决servlet的中文输出问题            String colour 
= colours[j];
用PrintWriter解决servlet的中文输出问题            
int length = lengths[j];
用PrintWriter解决servlet的中文输出问题            
if (length > 0{
用PrintWriter解决servlet的中文输出问题                out.append(
"<td style="background-color: #");
用PrintWriter解决servlet的中文输出问题                out.append(colour);
用PrintWriter解决servlet的中文输出问题                out.append(
"" width="");
用PrintWriter解决servlet的中文输出问题                out.append(
100 * length / totalLength);
用PrintWriter解决servlet的中文输出问题                out.append(
"%">&nbsp;</td>");
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        out.append(
"</tr></table>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Output the {
@link ConnectionPoolDefinitionIF definition}
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write the HTML
用PrintWriter解决servlet的中文输出问题     * 
@param cpd the definition
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void doDefinition(PrintWriter out, ConnectionPoolDefinitionIF cpd) throws IOException {
用PrintWriter解决servlet的中文输出问题        openDataTable(out);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
/*
用PrintWriter解决servlet的中文输出问题            TODO: it would be nice to have meta-data in the definition so that this is much easier.
用PrintWriter解决servlet的中文输出问题         
*/

用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.ALIAS, cpd.getAlias(), CORE_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.DRIVER_URL, cpd.getUrl(), CORE_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.DRIVER_CLASS, cpd.getDriver(), CORE_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.MINIMUM_CONNECTION_COUNT, String.valueOf(cpd.getMinimumConnectionCount()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.MAXIMUM_CONNECTION_COUNT, String.valueOf(cpd.getMaximumConnectionCount()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.PROTOTYPE_COUNT, cpd.getPrototypeCount() 
> 0 ? String.valueOf(cpd.getPrototypeCount()) : null, STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.SIMULTANEOUS_BUILD_THROTTLE, String.valueOf(cpd.getSimultaneousBuildThrottle()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.MAXIMUM_CONNECTION_LIFETIME, formatMilliseconds(cpd.getMaximumConnectionLifetime()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.MAXIMUM_ACTIVE_TIME, formatMilliseconds(cpd.getMaximumActiveTime()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.HOUSE_KEEPING_SLEEP_TIME, (cpd.getHouseKeepingSleepTime() 
/ 1000+ "s", STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.HOUSE_KEEPING_TEST_SQL, cpd.getHouseKeepingTestSql(), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.TEST_BEFORE_USE, String.valueOf(cpd.isTestBeforeUse()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.TEST_AFTER_USE, String.valueOf(cpd.isTestAfterUse()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.RECENTLY_STARTED_THRESHOLD, formatMilliseconds(cpd.getRecentlyStartedThreshold()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.OVERLOAD_WITHOUT_REFUSAL_LIFETIME, formatMilliseconds(cpd.getOverloadWithoutRefusalLifetime()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.INJECTABLE_CONNECTION_INTERFACE_NAME, String.valueOf(cpd.getInjectableConnectionInterface()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.INJECTABLE_STATEMENT_INTERFACE_NAME, String.valueOf(cpd.getInjectableStatementInterface()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.INJECTABLE_CALLABLE_STATEMENT_INTERFACE_NAME, String.valueOf(cpd.getInjectableCallableStatementInterface()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.INJECTABLE_PREPARED_STATEMENT_INTERFACE_NAME, String.valueOf(cpd.getInjectablePreparedStatementInterface()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// fatalSqlExceptions
用PrintWriter解决servlet的中文输出问题
        String fatalSqlExceptions = null;
用PrintWriter解决servlet的中文输出问题        
if (cpd.getFatalSqlExceptions() != null && cpd.getFatalSqlExceptions().size() > 0{
用PrintWriter解决servlet的中文输出问题            StringBuffer fatalSqlExceptionsBuffer 
= new StringBuffer();
用PrintWriter解决servlet的中文输出问题            Iterator i 
= cpd.getFatalSqlExceptions().iterator();
用PrintWriter解决servlet的中文输出问题            
while (i.hasNext()) {
用PrintWriter解决servlet的中文输出问题                String s 
= (String) i.next();
用PrintWriter解决servlet的中文输出问题                fatalSqlExceptionsBuffer.append(s);
用PrintWriter解决servlet的中文输出问题                fatalSqlExceptionsBuffer.append(i.hasNext() 
? "" : "");
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题            fatalSqlExceptions 
= fatalSqlExceptionsBuffer.toString();
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.FATAL_SQL_EXCEPTION, fatalSqlExceptions, STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.FATAL_SQL_EXCEPTION_WRAPPER_CLASS, cpd.getFatalSqlExceptionWrapper(), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.STATISTICS, cpd.getStatistics(), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.STATISTICS_LOG_LEVEL, cpd.getStatisticsLogLevel(), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.VERBOSE, String.valueOf(cpd.isVerbose()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        printDefinitionEntry(out, ProxoolConstants.TRACE, String.valueOf(cpd.isTrace()), STANDARD_PROPERTY);
用PrintWriter解决servlet的中文输出问题        
// Now all the properties that are forwarded to the delegate driver.
用PrintWriter解决servlet的中文输出问题
        Properties p = cpd.getDelegateProperties();
用PrintWriter解决servlet的中文输出问题        Iterator i 
= p.keySet().iterator();
用PrintWriter解决servlet的中文输出问题        
while (i.hasNext()) {
用PrintWriter解决servlet的中文输出问题            String name 
= (String) i.next();
用PrintWriter解决servlet的中文输出问题            String value 
= p.getProperty(name);
用PrintWriter解决servlet的中文输出问题            
// Better hide the password!
用PrintWriter解决servlet的中文输出问题
            if (name.toLowerCase().indexOf("password"> -1 || name.toLowerCase().indexOf("passwd"> -1{
用PrintWriter解决servlet的中文输出问题                value 
= "******";
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题            printDefinitionEntry(out, name 
+ " (delegated)", value, DELEGATED_PROPERTY);
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        closeTable(out);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Output a {
@link SnapshotIF snapshot} of the pool.
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write the HTML
用PrintWriter解决servlet的中文输出问题     * 
@param cpd defines the pool
用PrintWriter解决servlet的中文输出问题     * 
@param link the URL back to this servlet
用PrintWriter解决servlet的中文输出问题     * 
@param level either {@link #DETAIL_LESS} or {@link #DETAIL_MORE}
用PrintWriter解决servlet的中文输出问题     * 
@param connectionId the connection we want to drill into (optional)
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void doSnapshot(PrintWriter out, ConnectionPoolDefinitionIF cpd, String link, String level, String connectionId) throws IOException, ProxoolException {
用PrintWriter解决servlet的中文输出问题        
boolean detail = (level != null && level.equals(DETAIL_MORE));
用PrintWriter解决servlet的中文输出问题        SnapshotIF snapshot 
= ProxoolFacade.getSnapshot(cpd.getAlias(), detail);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
if (snapshot != null{
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            openDataTable(out);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            printDefinitionEntry(out, ProxoolConstants.ALIAS, cpd.getAlias(), CORE_PROPERTY);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// dateStarted
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Start date", DATE_FORMAT.format(snapshot.getDateStarted()), SNAPSHOT);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// snapshot date
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Snapshot", TIME_FORMAT.format(snapshot.getSnapshotDate()), SNAPSHOT);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// connections
用PrintWriter解决servlet的中文输出问题
            StringBuffer connectionsBuffer = new StringBuffer();
用PrintWriter解决servlet的中文输出问题            connectionsBuffer.append(snapshot.getActiveConnectionCount());
用PrintWriter解决servlet的中文输出问题            connectionsBuffer.append(
" (active), ");
用PrintWriter解决servlet的中文输出问题            connectionsBuffer.append(snapshot.getAvailableConnectionCount());
用PrintWriter解决servlet的中文输出问题            connectionsBuffer.append(
" (available), ");
用PrintWriter解决servlet的中文输出问题            
if (snapshot.getOfflineConnectionCount() > 0{
用PrintWriter解决servlet的中文输出问题                connectionsBuffer.append(snapshot.getOfflineConnectionCount());
用PrintWriter解决servlet的中文输出问题                connectionsBuffer.append(
" (offline), ");
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题            connectionsBuffer.append(snapshot.getMaximumConnectionCount());
用PrintWriter解决servlet的中文输出问题            connectionsBuffer.append(
" (max)<br/>");
用PrintWriter解决servlet的中文输出问题            String[] colours 
= {"ff9999""66cc66""cccccc"};
用PrintWriter解决servlet的中文输出问题            
int[] lengths = {snapshot.getActiveConnectionCount(), snapshot.getAvailableConnectionCount(),
用PrintWriter解决servlet的中文输出问题                    snapshot.getMaximumConnectionCount() 
- snapshot.getActiveConnectionCount() - snapshot.getAvailableConnectionCount()}
;
用PrintWriter解决servlet的中文输出问题            drawBarChart(connectionsBuffer, colours, lengths);
用PrintWriter解决servlet的中文输出问题            printDefinitionEntry(out, 
"Connections", connectionsBuffer.toString(), SNAPSHOT);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// servedCount
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Served", String.valueOf(snapshot.getServedCount()), SNAPSHOT);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
// refusedCount
用PrintWriter解决servlet的中文输出问题
            printDefinitionEntry(out, "Refused", String.valueOf(snapshot.getRefusedCount()), SNAPSHOT);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            
if (!detail) {
用PrintWriter解决servlet的中文输出问题                out.println(
"    <tr>");
用PrintWriter解决servlet的中文输出问题                out.print(
"        <td colspan="2" align="right"><form action="" + link + "" method="GET">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="hidden" name="" + ALIAS + "" value="" + cpd.getAlias() + "">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="hidden" name="" + TAB + "" value="" + TAB_SNAPSHOT + "">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="hidden" name="" + DETAIL + "" value="" + DETAIL_MORE + "">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="submit" value="More information&gt;">");
用PrintWriter解决servlet的中文输出问题                out.println(
"</form></td>");
用PrintWriter解决servlet的中文输出问题                out.println(
"    </tr>");
用PrintWriter解决servlet的中文输出问题            }
 else {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                out.println(
"    <tr>");
用PrintWriter解决servlet的中文输出问题                out.print(
"      <th width="200" valign="top">");
用PrintWriter解决servlet的中文输出问题                out.print(
"Details:<br>(click ID to drill down)");
用PrintWriter解决servlet的中文输出问题                out.println(
"</th>");
用PrintWriter解决servlet的中文输出问题                out.print(
"      <td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                doSnapshotDetails(out, cpd, snapshot, link, connectionId);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                out.println(
"</td>");
用PrintWriter解决servlet的中文输出问题                out.println(
"    </tr>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                
long drillDownConnectionId;
用PrintWriter解决servlet的中文输出问题                
if (connectionId != null{
用PrintWriter解决servlet的中文输出问题                    drillDownConnectionId 
= Long.valueOf(connectionId).longValue();
用PrintWriter解决servlet的中文输出问题                    ConnectionInfoIF drillDownConnection 
= snapshot.getConnectionInfo(drillDownConnectionId);
用PrintWriter解决servlet的中文输出问题                    
if (drillDownConnection != null{
用PrintWriter解决servlet的中文输出问题                        out.println(
"    <tr>");
用PrintWriter解决servlet的中文输出问题                        out.print(
"      <th valign="top">");
用PrintWriter解决servlet的中文输出问题                        out.print(
"Connection #" + connectionId);
用PrintWriter解决servlet的中文输出问题                        out.println(
"</td>");
用PrintWriter解决servlet的中文输出问题                        out.print(
"      <td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                        doDrillDownConnection(out, drillDownConnection);
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                        out.println(
"</td>");
用PrintWriter解决servlet的中文输出问题                        out.println(
"    </tr>");
用PrintWriter解决servlet的中文输出问题                    }

用PrintWriter解决servlet的中文输出问题                }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                out.println(
"    <tr>");
用PrintWriter解决servlet的中文输出问题                out.print(
"        <td colspan="2" align="right"><form action="" + link + "" method="GET">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="hidden" name="" + ALIAS + "" value="" + cpd.getAlias() + "">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="hidden" name="" + TAB + "" value="" + TAB_SNAPSHOT + "">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="hidden" name="" + DETAIL + "" value="" + DETAIL_LESS + "">");
用PrintWriter解决servlet的中文输出问题                out.print(
"<input type="submit" value="&lt; Less information">");
用PrintWriter解决servlet的中文输出问题                out.println(
"</form></td>");
用PrintWriter解决servlet的中文输出问题                out.println(
"    </tr>");
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            closeTable(out);
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * If we want a {
@link #DETAIL_MORE more} detailed {@link SnapshotIF snapshot} then {@link #doSnapshot(javax.servlet.PrintWriter, org.logicalcobwebs.proxool.ConnectionPoolDefinitionIF, String, String, String)}
用PrintWriter解决servlet的中文输出问题     * calls this too
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write the HTML
用PrintWriter解决servlet的中文输出问题     * 
@param cpd defines the pool
用PrintWriter解决servlet的中文输出问题     * 
@param snapshot snapshot
用PrintWriter解决servlet的中文输出问题     * 
@param link the URL back to this servlet
用PrintWriter解决servlet的中文输出问题     * 
@param connectionId the connection we want to drill into (optional)
用PrintWriter解决servlet的中文输出问题     * 
@param connectionId
用PrintWriter解决servlet的中文输出问题     * 
@throws IOException
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void doSnapshotDetails(PrintWriter out, ConnectionPoolDefinitionIF cpd, SnapshotIF snapshot, String link, String connectionId) throws IOException {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
long drillDownConnectionId = 0;
用PrintWriter解决servlet的中文输出问题        
if (connectionId != null{
用PrintWriter解决servlet的中文输出问题            drillDownConnectionId 
= Long.valueOf(connectionId).longValue();
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
if (snapshot.getConnectionInfos() != null && snapshot.getConnectionInfos().length > 0{
用PrintWriter解决servlet的中文输出问题            out.println(
"<table cellpadding="2" cellspacing="0" border="0">");
用PrintWriter解决servlet的中文输出问题            out.println(
"  <tbody>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            out.print(
"<tr>");
用PrintWriter解决servlet的中文输出问题            out.print(
"<td>#</td>");
用PrintWriter解决servlet的中文输出问题            out.print(
"<td align="center">born</td>");
用PrintWriter解决servlet的中文输出问题            out.print(
"<td align="center">last<br>start</td>");
用PrintWriter解决servlet的中文输出问题            out.print(
"<td align="center">lap<br>(ms)</td>");
用PrintWriter解决servlet的中文输出问题            out.print(
"<td>&nbsp;thread</td>");
用PrintWriter解决servlet的中文输出问题            out.print(
"</tr>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题            ConnectionInfoIF[] connectionInfos 
= snapshot.getConnectionInfos();
用PrintWriter解决servlet的中文输出问题            
for (int i = 0; i < connectionInfos.length; i++{
用PrintWriter解决servlet的中文输出问题                ConnectionInfoIF connectionInfo 
= connectionInfos[i];
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                
if (connectionInfo.getStatus() != ConnectionInfoIF.STATUS_NULL) {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    out.print(
"<tr>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    
// drillDownConnectionId
用PrintWriter解决servlet的中文输出问题
                    out.print("<td style="background-color: #");
用PrintWriter解决servlet的中文输出问题                    
if (connectionInfo.getStatus() == ConnectionInfoIF.STATUS_ACTIVE) {
用PrintWriter解决servlet的中文输出问题                        out.print(
"ffcccc");
用PrintWriter解决servlet的中文输出问题                    }
 else if (connectionInfo.getStatus() == ConnectionInfoIF.STATUS_AVAILABLE) {
用PrintWriter解决servlet的中文输出问题                        out.print(
"ccffcc");
用PrintWriter解决servlet的中文输出问题                    }
 else if (connectionInfo.getStatus() == ConnectionInfoIF.STATUS_OFFLINE) {
用PrintWriter解决servlet的中文输出问题                        out.print(
"ccccff");
用PrintWriter解决servlet的中文输出问题                    }

用PrintWriter解决servlet的中文输出问题                    out.print(
"" style="");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    
if (drillDownConnectionId == connectionInfo.getId()) {
用PrintWriter解决servlet的中文输出问题                        out.print(
"border: 1px solid black;");
用PrintWriter解决servlet的中文输出问题                        out.print(
"">");
用PrintWriter解决servlet的中文输出问题                        out.print(connectionInfo.getId());
用PrintWriter解决servlet的中文输出问题                    }
 else {
用PrintWriter解决servlet的中文输出问题                        out.print(
"border: 1px solid transparent;");
用PrintWriter解决servlet的中文输出问题                        out.print(
""><a href="");
用PrintWriter解决servlet的中文输出问题                        out.print(link);
用PrintWriter解决servlet的中文输出问题                        out.print(
"?");
用PrintWriter解决servlet的中文输出问题                        out.print(ALIAS);
用PrintWriter解决servlet的中文输出问题                        out.print(
"=");
用PrintWriter解决servlet的中文输出问题                        out.print(cpd.getAlias());
用PrintWriter解决servlet的中文输出问题                        out.print(
"&");
用PrintWriter解决servlet的中文输出问题                        out.print(TAB);
用PrintWriter解决servlet的中文输出问题                        out.print(
"=");
用PrintWriter解决servlet的中文输出问题                        out.print(TAB_SNAPSHOT);
用PrintWriter解决servlet的中文输出问题                        out.print(
"&");
用PrintWriter解决servlet的中文输出问题                        out.print(DETAIL);
用PrintWriter解决servlet的中文输出问题                        out.print(
"=");
用PrintWriter解决servlet的中文输出问题                        out.print(DETAIL_MORE);
用PrintWriter解决servlet的中文输出问题                        out.print(
"&");
用PrintWriter解决servlet的中文输出问题                        out.print(CONNECTION_ID);
用PrintWriter解决servlet的中文输出问题                        out.print(
"=");
用PrintWriter解决servlet的中文输出问题                        out.print(connectionInfo.getId());
用PrintWriter解决servlet的中文输出问题                        out.print(
"">");
用PrintWriter解决servlet的中文输出问题                        out.print(connectionInfo.getId());
用PrintWriter解决servlet的中文输出问题                        out.print(
"</a>");
用PrintWriter解决servlet的中文输出问题                    }

用PrintWriter解决servlet的中文输出问题                    out.print(
"</td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    
// birth
用PrintWriter解决servlet的中文输出问题
                    out.print("<td>&nbsp;");
用PrintWriter解决servlet的中文输出问题                    out.print(TIME_FORMAT.format(connectionInfo.getBirthDate()));
用PrintWriter解决servlet的中文输出问题                    out.print(
"</td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    
// started
用PrintWriter解决servlet的中文输出问题
                    out.print("<td>&nbsp;");
用PrintWriter解决servlet的中文输出问题                    out.print(connectionInfo.getTimeLastStartActive() 
> 0 ? TIME_FORMAT.format(new Date(connectionInfo.getTimeLastStartActive())) : "-");
用PrintWriter解决servlet的中文输出问题                    out.print(
"</td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    
// active
用PrintWriter解决servlet的中文输出问题
                    out.print("<td align="right" class="");
用PrintWriter解决servlet的中文输出问题                    out.print(getStatusClass(connectionInfo));
用PrintWriter解决servlet的中文输出问题                    out.print(
"">");
用PrintWriter解决servlet的中文输出问题                    String active 
= "&nbsp;";
用PrintWriter解决servlet的中文输出问题                    
if (connectionInfo.getTimeLastStopActive() > 0{
用PrintWriter解决servlet的中文输出问题                        active 
= String.valueOf((int) (connectionInfo.getTimeLastStopActive() - connectionInfo.getTimeLastStartActive()));
用PrintWriter解决servlet的中文输出问题                    }
 else if (connectionInfo.getTimeLastStartActive() > 0{
用PrintWriter解决servlet的中文输出问题                        active 
= String.valueOf((int) (snapshot.getSnapshotDate().getTime() - connectionInfo.getTimeLastStartActive()));
用PrintWriter解决servlet的中文输出问题                    }

用PrintWriter解决servlet的中文输出问题                    out.print(active);
用PrintWriter解决servlet的中文输出问题                    out.print(
"&nbsp;&nbsp;</td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    
// requester
用PrintWriter解决servlet的中文输出问题
                    out.print("<td>&nbsp;");
用PrintWriter解决servlet的中文输出问题                    out.print(connectionInfo.getRequester() 
!= null ? connectionInfo.getRequester() : "-");
用PrintWriter解决servlet的中文输出问题                    out.print(
"</td>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题                    out.println(
"</tr>");
用PrintWriter解决servlet的中文输出问题                }

用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题            out.println(
"  </tbody>");
用PrintWriter解决servlet的中文输出问题            out.println(
"</table>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        }
 else {
用PrintWriter解决servlet的中文输出问题            out.println(
"No connections yet");
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * What CSS class to use for a particular connection.
用PrintWriter解决servlet的中文输出问题     * 
@param info so we know the {@link org.logicalcobwebs.proxool.ConnectionInfoIF#getStatus()} status
用PrintWriter解决servlet的中文输出问题     * 
@return the CSS class
用PrintWriter解决servlet的中文输出问题     * 
@see #STATUS_CLASSES
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private static String getStatusClass(ConnectionInfoIF info) {
用PrintWriter解决servlet的中文输出问题        
try {
用PrintWriter解决servlet的中文输出问题            
return STATUS_CLASSES[info.getStatus()];
用PrintWriter解决servlet的中文输出问题        }
 catch (ArrayIndexOutOfBoundsException e) {
用PrintWriter解决servlet的中文输出问题            LOG.warn(
"Unknown status: " + info.getStatus());
用PrintWriter解决servlet的中文输出问题            
return "unknown-" + info.getStatus();
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private void doDrillDownConnection(PrintWriter out, ConnectionInfoIF drillDownConnection) throws IOException {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// sql calls
用PrintWriter解决servlet的中文输出问题
        String[] sqlCalls = drillDownConnection.getSqlCalls();
用PrintWriter解决servlet的中文输出问题        
for (int i = 0; sqlCalls != null && i < sqlCalls.length; i++{
用PrintWriter解决servlet的中文输出问题            String sqlCall 
= sqlCalls[i];
用PrintWriter解决servlet的中文输出问题            out.print(
"<div class="drill-down">");
用PrintWriter解决servlet的中文输出问题            out.print(
"sql = ");
用PrintWriter解决servlet的中文输出问题            out.print(sqlCall);
用PrintWriter解决servlet的中文输出问题            out.print(
"</div>");
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// proxy
用PrintWriter解决servlet的中文输出问题
        out.print("<div class="drill-down">");
用PrintWriter解决servlet的中文输出问题        out.print(
"proxy = ");
用PrintWriter解决servlet的中文输出问题        out.print(drillDownConnection.getProxyHashcode());
用PrintWriter解决servlet的中文输出问题        out.print(
"</div>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// delegate
用PrintWriter解决servlet的中文输出问题
        out.print("<div class="drill-down">");
用PrintWriter解决servlet的中文输出问题        out.print(
"delegate = ");
用PrintWriter解决servlet的中文输出问题        out.print(drillDownConnection.getDelegateHashcode());
用PrintWriter解决servlet的中文输出问题        out.print(
"</div>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
// url
用PrintWriter解决servlet的中文输出问题
        String url= drillDownConnection.getDelegateUrl();
用PrintWriter解决servlet的中文输出问题        String[] urls
=url.split("/?");    //Hide the user & password of url
用PrintWriter解决servlet的中文输出问题
        out.print("<div class="drill-down">");
用PrintWriter解决servlet的中文输出问题        out.print(
"url = ");
用PrintWriter解决servlet的中文输出问题        out.print(urls[
0]);
用PrintWriter解决servlet的中文输出问题        out.print(
"</div>");
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private void openHtml(PrintWriter out) throws IOException {
用PrintWriter解决servlet的中文输出问题        out.println(
"<html><header><title>Proxool Admin</title>");
用PrintWriter解决servlet的中文输出问题        out.println(
"<style media="screen">");
用PrintWriter解决servlet的中文输出问题        out.println(
"body {background-color: #93bde6;} " +
用PrintWriter解决servlet的中文输出问题                
"div.version {font-weight: bold; font-size: 100%; margin-bottom: 8px;} " +
用PrintWriter解决servlet的中文输出问题                
"h1 {font-weight: bold; font-size: 100%} " +
用PrintWriter解决servlet的中文输出问题                
"option {padding: 2px 24px 2px 4px;} " +
用PrintWriter解决servlet的中文输出问题                
"input {margin: 0px 0px 4px 12px;} " +
用PrintWriter解决servlet的中文输出问题                
"table.data {font-size: 90%; border-collapse: collapse; border: 1px solid black;} " +
用PrintWriter解决servlet的中文输出问题                
"table.data th {background: #bddeff; width: 25em; text-align: left; padding-right: 8px; font-weight: normal; border: 1px solid black;} " +
用PrintWriter解决servlet的中文输出问题                
"table.data td {background: #ffffff; vertical-align: top; padding: 0px 2px 0px 2px; border: 1px solid black;} " +
用PrintWriter解决servlet的中文输出问题                
"td.null {background: yellow;} " +
用PrintWriter解决servlet的中文输出问题                
"td.available {color: black;} " +
用PrintWriter解决servlet的中文输出问题                
"td.active {color: red;} " +
用PrintWriter解决servlet的中文输出问题                
"td.offline {color: blue;} " +
用PrintWriter解决servlet的中文输出问题                
"div.drill-down {} " +
用PrintWriter解决servlet的中文输出问题                
"ul {list-style: none; padding: 0px; margin: 0px; position: relative; font-size: 90%;} " +
用PrintWriter解决servlet的中文输出问题                
"li {padding: 0px; margin: 0px 4px 0px 0px; display: inline; border: 1px solid black; border-width: 1px 1px 0px 1px;} " +
用PrintWriter解决servlet的中文输出问题                
"li.active {background: #bddeff;} " +
用PrintWriter解决servlet的中文输出问题                
"li.inactive {background: #eeeeee;} " +
用PrintWriter解决servlet的中文输出问题                
"li.disabled {background: #dddddd; color: #999999; padding: 0px 4px 0px 4px;} " +
用PrintWriter解决servlet的中文输出问题                
"a.quiet {color: black; text-decoration: none; padding: 0px 4px 0px 4px; } " +
用PrintWriter解决servlet的中文输出问题                
"a.quiet:hover {background: white;} ");
用PrintWriter解决servlet的中文输出问题        out.println(
"</style>");
用PrintWriter解决servlet的中文输出问题        
// If we have configured a cssFile then that will override what we have above
用PrintWriter解决servlet的中文输出问题
        if (cssFile != null{
用PrintWriter解决servlet的中文输出问题            out.println(
"<link rel="stylesheet" media="screen" type="text/css" href="" + cssFile + ""></script>");
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        out.println(
"</header><body>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private void closeHtml(PrintWriter out) throws IOException {
用PrintWriter解决servlet的中文输出问题        out.println(
"</body></html>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private void openDataTable(PrintWriter out) throws IOException {
用PrintWriter解决servlet的中文输出问题        out.println(
"<table cellpadding="2" cellspacing="0" border="1" class="data">");
用PrintWriter解决servlet的中文输出问题        out.println(
"  <tbody>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private void closeTable(PrintWriter out) throws IOException {
用PrintWriter解决servlet的中文输出问题        out.println(
"  </tbody>");
用PrintWriter解决servlet的中文输出问题        out.println(
"</table>");
用PrintWriter解决servlet的中文输出问题        out.println(
"<br/>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
private void printDefinitionEntry(PrintWriter out, String name, String value, String type) throws IOException {
用PrintWriter解决servlet的中文输出问题        out.println(
"    <tr>");
用PrintWriter解决servlet的中文输出问题        out.print(
"      <th valign="top">");
用PrintWriter解决servlet的中文输出问题        out.print(name);
用PrintWriter解决servlet的中文输出问题        out.println(
":</th>");
用PrintWriter解决servlet的中文输出问题        out.print(
"      <td class="" + type + ""nowrap>");
用PrintWriter解决servlet的中文输出问题        
if (value != null && !value.equals("null")) {
用PrintWriter解决servlet的中文输出问题            out.print(value);
用PrintWriter解决servlet的中文输出问题        }
 else {
用PrintWriter解决servlet的中文输出问题            out.print(
"-");
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题        out.print(
"</td>");
用PrintWriter解决servlet的中文输出问题        out.println(
"    </tr>");
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Output the list of available connection pools. If there are none then display a message saying that.
用PrintWriter解决servlet的中文输出问题     * If there is only one then just display nothing (and the pool will displayed by default)
用PrintWriter解决servlet的中文输出问题     * 
@param out where to write the HTML
用PrintWriter解决servlet的中文输出问题     * 
@param alias identifies the current pool
用PrintWriter解决servlet的中文输出问题     * 
@param tab identifies the tab we are on so that changing pools doesn't change the tab
用PrintWriter解决servlet的中文输出问题     * 
@param link the URL back to this servlet
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private void doList(PrintWriter out, String alias, String tab, String link) throws IOException {
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        String[] aliases 
= ProxoolFacade.getAliases();
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题        
if (aliases.length == 0{
用PrintWriter解决servlet的中文输出问题            out.println(
"<p>No pools have been registered.</p>");
用PrintWriter解决servlet的中文输出问题        }
 else if (aliases.length == 1{
用PrintWriter解决servlet的中文输出问题            
// Don't bother listing. Just show it.
用PrintWriter解决servlet的中文输出问题
        }
 else {
用PrintWriter解决servlet的中文输出问题            out.println(
"<form action="" + link + "" method="GET" name="alias">");
用PrintWriter解决servlet的中文输出问题            out.println(
"<select name="alias" size="" + Math.min(aliases.length, 5+ "">");
用PrintWriter解决servlet的中文输出问题            
for (int i = 0; i < aliases.length; i++{
用PrintWriter解决servlet的中文输出问题                out.print(
"  <option value="");
用PrintWriter解决servlet的中文输出问题                out.print(aliases[i]);
用PrintWriter解决servlet的中文输出问题                out.print(
""");
用PrintWriter解决servlet的中文输出问题                out.print(aliases[i].equals(alias) 
? " selected" : "");
用PrintWriter解决servlet的中文输出问题                out.print(
">");
用PrintWriter解决servlet的中文输出问题                out.print(aliases[i]);
用PrintWriter解决servlet的中文输出问题                out.println(
"</option>");
用PrintWriter解决servlet的中文输出问题            }

用PrintWriter解决servlet的中文输出问题            out.println(
"</select>");
用PrintWriter解决servlet的中文输出问题            out.println(
"<input name="" + TAB + "" value="" + tab + "" type="hidden">");
用PrintWriter解决servlet的中文输出问题            out.println(
"<input value="Show" type="submit">");
用PrintWriter解决servlet的中文输出问题            out.println(
"</form>");
用PrintWriter解决servlet的中文输出问题        }

用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题    
/**
用PrintWriter解决servlet的中文输出问题     * Express time in an easy to read HH:mm:ss format
用PrintWriter解决servlet的中文输出问题     *
用PrintWriter解决servlet的中文输出问题     * 
@param time in milliseconds
用PrintWriter解决servlet的中文输出问题     * 
@return time (e.g. 180000 = 00:30:00)
用PrintWriter解决servlet的中文输出问题     * 
@see #TIME_FORMAT
用PrintWriter解决servlet的中文输出问题     
*/

用PrintWriter解决servlet的中文输出问题    
private String formatMilliseconds(int time) {
用PrintWriter解决servlet的中文输出问题        Calendar c 
= Calendar.getInstance();
用PrintWriter解决servlet的中文输出问题        c.clear();
用PrintWriter解决servlet的中文输出问题        c.add(Calendar.MILLISECOND, time);
用PrintWriter解决servlet的中文输出问题        
return TIME_FORMAT.format(c.getTime());
用PrintWriter解决servlet的中文输出问题    }

用PrintWriter解决servlet的中文输出问题}

用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题
/*
用PrintWriter解决servlet的中文输出问题Revision history:
用PrintWriter解决servlet的中文输出问题$Log: ProxoolAdminServlet.java,v $
用PrintWriter解决servlet的中文输出问题Revision 1.14  2006/06/09 17:32:54  billhorsman
用PrintWriter解决servlet的中文输出问题Fix closing tag for select. Credit to Paolo Di Tommaso.
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.13  2006/01/18 14:39:56  billhorsman
用PrintWriter解决servlet的中文输出问题Unbundled Jakarta's Commons Logging.
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.12  2005/10/07 08:23:10  billhorsman
用PrintWriter解决servlet的中文输出问题Doc
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.11  2005/10/02 09:45:49  billhorsman
用PrintWriter解决servlet的中文输出问题Layout
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.10  2005/09/26 21:47:46  billhorsman
用PrintWriter解决servlet的中文输出问题no message
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.9  2005/09/26 13:31:14  billhorsman
用PrintWriter解决servlet的中文输出问题Smartened up ProxoolAdminServlet
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.8  2003/09/29 17:49:19  billhorsman
用PrintWriter解决servlet的中文输出问题Includes new fatal-sql-exception-wrapper-class in display
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.7  2003/08/06 20:08:58  billhorsman
用PrintWriter解决servlet的中文输出问题fix timezone display of time (for millisecond based properties)
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.6  2003/03/10 23:43:14  billhorsman
用PrintWriter解决servlet的中文输出问题reapplied checkstyle that i'd inadvertently let
用PrintWriter解决servlet的中文输出问题IntelliJ change...
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.5  2003/03/10 15:26:51  billhorsman
用PrintWriter解决servlet的中文输出问题refactoringn of concurrency stuff (and some import
用PrintWriter解决servlet的中文输出问题optimisation)
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.4  2003/03/03 11:12:00  billhorsman
用PrintWriter解决servlet的中文输出问题fixed licence
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.3  2003/02/26 16:59:18  billhorsman
用PrintWriter解决servlet的中文输出问题fixed spelling error in method name
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.2  2003/02/26 16:51:12  billhorsman
用PrintWriter解决servlet的中文输出问题fixed units for average active time. now displays
用PrintWriter解决servlet的中文输出问题properly in seconds
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.1  2003/02/24 10:19:44  billhorsman
用PrintWriter解决servlet的中文输出问题moved ProxoolAdminServlet into servlet package
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.1  2003/02/19 23:36:51  billhorsman
用PrintWriter解决servlet的中文输出问题renamed monitor package to admin
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.10  2003/02/12 12:28:27  billhorsman
用PrintWriter解决servlet的中文输出问题added url, proxyHashcode and delegateHashcode to
用PrintWriter解决servlet的中文输出问题ConnectionInfoIF
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.9  2003/02/11 00:30:28  billhorsman
用PrintWriter解决servlet的中文输出问题add version
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.8  2003/02/06 17:41:05  billhorsman
用PrintWriter解决servlet的中文输出问题now uses imported logging
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.7  2003/02/06 15:42:21  billhorsman
用PrintWriter解决servlet的中文输出问题display changes
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.6  2003/02/05 17:04:02  billhorsman
用PrintWriter解决servlet的中文输出问题fixed date format
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.5  2003/02/05 15:06:16  billhorsman
用PrintWriter解决servlet的中文输出问题removed dependency on JDK1.4 imaging.
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.4  2003/01/31 16:53:21  billhorsman
用PrintWriter解决servlet的中文输出问题checkstyle
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.3  2003/01/31 16:38:52  billhorsman
用PrintWriter解决servlet的中文输出问题doc (and removing public modifier for classes where possible)
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.2  2003/01/31 11:35:57  billhorsman
用PrintWriter解决servlet的中文输出问题improvements to servlet (including connection details)
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题Revision 1.1  2003/01/31 00:38:22  billhorsman
用PrintWriter解决servlet的中文输出问题*** empty log message ***
用PrintWriter解决servlet的中文输出问题
用PrintWriter解决servlet的中文输出问题
*/