import java.io.*; import java.sql.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.ecs.*; import org.apache.ecs.html.*; import com.oreilly.servlet.*; public class ResultSetServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); String url = req.getParameter("url"); String driver = req.getParameter("driver"); String sql = req.getParameter("sql"); // Quickly verify url/driver/sql exist ParameterParser parser = new ParameterParser(req); String[] required = { "url", "driver", "sql" }; String[] missing = parser.getMissingParameters(required); if (missing != null && missing.length > 0) { res.sendError(res.SC_BAD_REQUEST, "URL, Driver, and SQL string must all be provided"); return; } String param1 = req.getParameter("param1"); String param2 = req.getParameter("param2"); String param3 = req.getParameter("param3"); String param4 = req.getParameter("param4"); String param5 = req.getParameter("param5"); String param6 = req.getParameter("param6"); String val1 = req.getParameter("val1"); String val2 = req.getParameter("val2"); String val3 = req.getParameter("val3"); String val4 = req.getParameter("val4"); String val5 = req.getParameter("val5"); String val6 = req.getParameter("val6"); Properties props = new Properties(); if (param1 != null && val1 != null) { props.put(param1, val1); } if (param2 != null && val2 != null) { props.put(param2, val2); } if (param3 != null && val3 != null) { props.put(param3, val3); } if (param4 != null && val4 != null) { props.put(param4, val4); } if (param5 != null && val5 != null) { props.put(param5, val5); } if (param6 != null && val6 != null) { props.put(param6, val6); } Connection con = null; try { Class.forName(driver); con = DriverManager.getConnection(url, props); Statement stmt = con.createStatement(); boolean gotResultSet = stmt.execute(sql); if (!gotResultSet) { out.println(stmt.getUpdateCount() + " rows updated."); } else { TableCustomizer[] customizers = { new NullCustomizer(), new DateCustomizer(req.getLocale()), new BugIdCustomizer(req.getContextPath() + "/servlet/BugView"), new NumberCustomizer(req.getLocale()), }; out.println(new ResultSetTable(stmt.getResultSet(), customizers)); } } catch (Exception e) { throw new ServletException(e); } finally { if (con != null) try { con.close(); } catch (SQLException ignored) { } } } }