Servlets Java servlet-使用字符串缓冲区导出到excell

Servlets Java servlet-使用字符串缓冲区导出到excell,servlets,stringbuffer,Servlets,Stringbuffer,我是JAVA新手。我正在尝试通过servlet从resultset导出Excel 当我试图在字符串缓冲区中存储数据时,它实际上并没有保存数据 Testfirst.java String assingee_name = req.getParameter("firstName"); String track_name = req.getParameter("track"); String sla_id = req.getParameter("sla"); StringBuffer sb = new

我是JAVA新手。我正在尝试通过servlet从resultset导出Excel

当我试图在字符串缓冲区中存储数据时,它实际上并没有保存数据

Testfirst.java

String assingee_name = req.getParameter("firstName");
String track_name = req.getParameter("track");
String sla_id = req.getParameter("sla");
StringBuffer sb = new StringBuffer();

try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con = DriverManager.getConnection("jdbc:odbc:Databasethree");
    stmt = con.createStatement();

    //pw.println("'" +assingee_name + "'");
    length = track_name.length();

    if (length > 0) {
        rs = stmt.executeQuery("SELECT* FROM casedetails where track =" + "'" + track_name + "'");
    }

    length = sla_id.length();
    if (length > 0) {
        //rs = stmt.executeQuery("SELECT* FROM casedetails where case_age >"+"'" +sla_id + "'");
        rs = stmt.executeQuery("SELECT* FROM cdoscase where Incident_Submit_Fiscal_Year=" + "'" + sla_id + "'");
    }

    length = assingee_name.length();
    if (length > 0) {
        rs = stmt.executeQuery("SELECT* FROM casedetails where Assingee_name =" + "'" + assingee_name + "'");
    }
    pw.println("<html><body>");

    pw.println("<H1> CDOS Case Management Version 1.1 </H1>");

    pw.println("<Head><style>table,th,td{border:1px solid black;}</style></head>");
    pw.println("<table>");

    ResultSetMetaData rm = rs.getMetaData();
    int clm = rm.getColumnCount();
    StringBuffer sb1 = new StringBuffer();
    String sb2 = new String();

    for (int j = 1; j <= clm; j++) {
        sb2 = rm.getColumnName(j);
        pw.println("<th>");
        pw.println(sb2);
        pw.println("</th>");
    }

    ArrayList Rows = new ArrayList();
    ArrayList row = new ArrayList();
    Object a = new Object();
    int jj = 0;  // to find out the number rows 

    while (rs.next()) {
        jj = jj + 1;

        pw.println("<tr>");

        for (int i = 1; i <= clm; i++) {
            //data1[i]=rs.getString(i);
            pw.println("<td>");
            //pw.println(rs.getObject(i).toString());
            pw.println(rs.getString(i));
            pw.println("</td>");
            sb2.append(rs.getString(i);
            //row.add(rs.getString(i));
            //sb2=sb2+rs.getObject(i).toString();
        }

        pw.println("</tr>");

    } sb1.append("fd");
    //Rows.add(row);
    pw.println("Total Records found" + sb1);
    pw.println("</table>");

    //sb2=sb2+rs.getObject(clm).toString();
    //sb1.append(sb2);
    //sb1.append(sb2);
    a = rs.getString(4).toString();
    pw.println("this is data " + a);
    pw.println("<p>");
    pw.println("<td>Do you want to download report </td>");
    req.setAttribute("data", Rows);
    pw.println("<input type=\"submit\" name =\"submit1\" value=\"Export To Excel\">");
    pw.println("</form>");
} catch (SQLException e) {
    pw.println(e.getNextException());
} catch (ClassNotFoundException e) {
    pw.println(e.getException());
} finally {
    try {
        if (rs != null) {
            rs.close();

            rs = null;
        }
        if (stmt != null) {

            stmt.close();
            stmt = null;
        }
        if (con != null) {

            con.close();
            con = null;
        }
    } catch (Exception e) {
        pw.close();
    }
}
}

非常感谢您在这方面的任何帮助

谢谢,
SR

请更好地描述您的问题。我无法想象你不救它是什么意思。它发生在哪里?在浏览器中?有什么错误吗?您看到日志了吗?我可以看到您的代码sb和sb1中声明了两个StringBuffers。sb在您提供的代码中甚至没有使用过一次,您使用sb1的唯一时间是向其添加静态文本:sb1.appendfd;试着从这一点开始,或者进一步澄清你的问题。不保存意味着数据不会被复制到字符串缓冲区对象上