// GuestBookServlet, based on example from http://www.oreilly.com/catalog/msql/servlet.txt // Very loosely based, as it turns out. I couldn't find adequate documentation to make that work. // This version uses Jetty. // javac -classpath org.mortbay.jetty.jar;javax.servlet.jar GuestBookServlet.java // java -cp msql-connector-java-3.0.8-stable-bin.jar;org.mortbay.jetty.jar GuestBookServlet /* Here's how to build the database: mysqladmin create GUESTBOOK mysql <"); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
Name:
Comments:
"); out.println("
"); out.println("
"); out.println(""); } private void printComments(ServletOutputStream out) throws IOException { Connection conn = null; println(" printComments()"); try { ResultSet results; Statement stmt; int rows, count; conn = openConnection(); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); results = stmt.executeQuery("SELECT name, date, " + "comment, comment_id " + "FROM comments " + "ORDER BY comment_id"); println(" ...SELECT FROM comments"); out.println("
"); results.last(); count = 0; // print up to 5 rows going backwards while (count < 5) { String name, cmt, date; name = results.getString(1); if( results.wasNull() ) name = "Unknown User"; date = results.getString(2); if( results.wasNull() ) date = curDateString(); cmt = results.getString(3); if( results.wasNull() ) cmt= "No comment"; out.println("
" + name + " on " + date); cmt = noHTML(cmt); out.println("
" + cmt + "
"); if (!results.previous()) break; // no more. count++; } out.println("
"); } catch( Exception e ) { out.println("Error: " + e.getMessage()); println("EXC printComments(): " + e.getMessage()); e.printStackTrace(); } finally { if( conn != null ) { try { conn.close(); } catch( SQLException e ) { } } } } private void printPageHeader(ServletOutputStream out) throws IOException { out.println(""); out.println(""); out.println("Guest Book"); out.println(""); out.println(""); out.println("

Guest Book

"); } private void printPageFooter(ServletOutputStream out) throws IOException { out.println(""); out.println(""); out.flush(); } private String noHTML(String cmt) { int ilt= cmt.indexOf('<'); int igt= cmt.indexOf('>'); if (ilt< 0 && igt< 0) return cmt; String tmp = ""; for (int i=0; i' ) tmp = tmp + ">"; else tmp = tmp + c; } return tmp; } private String fixComment(String comment) { if( comment.indexOf('\'') != -1 ) { String tmp = ""; for(int i=0; i= 1) { userPassword= args[0]; System.out.print(args[0]); } startServer(); realityCheck(); } }