[ ÓÀÔ¶µÄUNIX::UNIX¼¼Êõ×ÊÁϵı¦¿â ]

Ê×Ò³ > ±à³Ì¼¼Êõ > Java > ÕýÎÄ
»ùÓÚjava servlet¼¼ÊõµÄÁôÑÔ²¾
http://www.linuxforum.net ×÷Õß dream_bird@163.net (2001-04-21 17:36:45)
Õ⼸ÌìÕûÀíÎÒ»úÆ÷ÖеľÉÎĵµÊ±£¬·¢ÏÖÁËÒ»¸ö²»´íµÄ»ùÓÚjava¡¡servlet¼¼ÊõµÄÁôÑÔ²¾£¬ºÃÏóÊǼ¸¸öÔÂǰÎÒ´Ó¡¡http://go.163.com/~netjava/¡¡ÕÒµ½µÄ£¬ºǫ́Êý¾Ý¿âÓõÄÊÇSQL¡¡Server¡£ÏÖÔÚÎÒµÄRedhat¡¡6.1ÉÏÕýºÃ°²×°ÁËApache¡¡Jserv¡¡1.1¡¢GNUJSP¡¡1.0¡¢MySQL£¨°üÀ¨mm.mysqlµÄJDBCÇý¶¯£©£¬³ý´ËÖ®Í⻹ÓÐTomcat¡¡3.1ºÍCocoon¡¡1.8¡£µ±È»£¬Ò»°ãÖ»ÔËÐÐJserv¡¡+¡¡GNUJSP¡¡+¡¡Cocoon¡¡+¡¡MySQL£¬TomcatÊDz»ÔËÐеġ£¼ÈÈ»»·¾³ÊÇÏֳɵģ¬ÎªÊ²Ã´²»°ÑÕâ¸öÁôÑÔ²¾¸Ä¸ÄÈÃËü¿ÉÒÔÔËÐÐÄØ£¿

Ê×ÏȸÄÔìËüµÄÔ´´úÂ룬°ÑJDBC¡¡Çý¶¯ºÍURL¸Ä³ÉMySQLµÄ¡£GuestBookServlet.java³ÌÐò´úÂëÈçÏ£º

//javac¡¡-encoding¡¡iso8859_1¡¡GuestBookServlet.java¡¡(¡¡for¡¡Chinese¡¡gb2312¡¡)
//javac¡¡GuestBookServlet.java
import¡¡javax.servlet.*;
import¡¡javax.servlet.http.*;
import¡¡java.io.*;
import¡¡java.net.*;
import¡¡java.sql.*;
import¡¡java.text.DateFormat;
import¡¡java.util.Locale;

public¡¡class¡¡GuestBookServlet¡¡extends¡¡HttpServlet¡¡{
¡¡¡¡¡¡¡¡public¡¡void¡¡init(ServletConfig¡¡conf)¡¡throws¡¡ServletException¡¡{

¡¡¡¡¡¡¡¡ super.init(conf);

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class.forName("org.gjt.mm.mysql.Driver");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch(¡¡Exception¡¡e¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡}
//Sign¡¡guestbook
¡¡¡¡¡¡¡¡public¡¡void¡¡doPost(HttpServletRequest¡¡req,¡¡HttpServletResponse¡¡res)
¡¡¡¡¡¡¡¡throws¡¡ServletException,¡¡IOException¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡url¡¡=¡¡"jdbc:mysql://localhost.localdomain:3306/GuestBook?user=guest&password=password";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ServletOutputStream¡¡out¡¡=¡¡res.getOutputStream();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡java.util.Date¡¡date¡¡=¡¡new¡¡java.util.Date();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡name,¡¡email,¡¡comment;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Connection¡¡conn¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Exception¡¡err¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡id¡¡=¡¡-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String[]¡¡tmp;
//init

//accept¡¡name¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡req.getParameterValues("name");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡tmp¡¡==¡¡null¡¡||¡¡tmp.length¡¡!=¡¡1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡name¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡name¡¡=¡¡tmp[0];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
//accept¡¡email¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡req.getParameterValues("email");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡tmp¡¡==¡¡null¡¡||¡¡tmp.length¡¡!=¡¡1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡email¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡email¡¡=¡¡tmp[0];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
//accept¡¡comments¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡req.getParameterValues("comments");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡tmp¡¡==¡¡null¡¡||¡¡tmp.length¡¡!=¡¡1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡comment¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡comment¡¡=¡¡tmp[0];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡//header
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡res.setContentType("text/html");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageHeader(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡name.length()¡¡<¡¡1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("You¡¡must¡¡specify¡¡a¡¡valid¡¡name!");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printCommentForm(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageFooter(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡email.length()¡¡<¡¡3¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("You¡¡must¡¡specify¡¡a¡¡valid¡¡email¡¡address!");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printCommentForm(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageFooter(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡email.indexOf("@")¡¡<¡¡1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("You¡¡must¡¡specify¡¡a¡¡valid¡¡email¡¡address!");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printCommentForm(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageFooter(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡comment.length()¡¡<¡¡1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("You¡¡left¡¡no¡¡comments!");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printCommentForm(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageFooter(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//access¡¡to¡¡MySQL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Statement¡¡statement;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ResultSet¡¡result;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡conn¡¡=¡¡DriverManager.getConnection(url);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement¡¡=¡¡conn.createStatement();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡result¡¡=¡¡statement.executeQuery("SELECT¡¡next_id¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"FROM¡¡sys_gen¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"WHERE¡¡id¡¡=¡¡'comment_id'");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡!result.next()¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡throw¡¡new¡¡java.sql.SQLException("Failed¡¡to¡¡generate¡¡id.");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡id¡¡=¡¡result.getInt(1)¡¡+¡¡1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡result.close();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement.close();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement¡¡=¡¡conn.createStatement();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement.executeUpdate("UPDATE¡¡sys_gen¡¡SET¡¡next_id¡¡=¡¡"¡¡+¡¡id¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"¡¡WHERE¡¡id¡¡=¡¡'comment_id'");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement.close();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement¡¡=¡¡conn.createStatement();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡comment¡¡=¡¡fixComment(comment);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement.executeUpdate("INSERT¡¡into¡¡comments¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"(comment_id,¡¡email,¡¡name,¡¡comment,¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"cmt_date)¡¡"+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"VALUES¡¡("¡¡+¡¡id¡¡+",¡¡'"¡¡+¡¡email¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"',¡¡'"¡¡+¡¡name¡¡+¡¡"',¡¡'"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡comment¡¡+¡¡"',¡¡'"¡¡+¡¡date.getTime()¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"')");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡statement.close();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch(¡¡java.sql.SQLException¡¡e¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡e.printStackTrace();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡err¡¡=¡¡e;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡finally¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡conn¡¡!=¡¡null¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡{¡¡conn.close();¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch(¡¡Exception¡¡e¡¡)¡¡{¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡err¡¡!=¡¡null¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("An¡¡error¡¡occurred¡¡on¡¡save:¡¡"¡¡+¡¡err.getMessage());
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printCommentForm(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printComments(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡
//browser¡¡¡¡the¡¡guestbook
¡¡¡¡¡¡¡¡public¡¡void¡¡doGet(HttpServletRequest¡¡req,¡¡HttpServletResponse¡¡res)
¡¡¡¡¡¡¡¡throws¡¡ServletException,¡¡IOException¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡url¡¡=¡¡"jdbc:mysql://localhost.localdomain:3306/GusetBook?user=guest&password=password";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ServletOutputStream¡¡out¡¡=¡¡res.getOutputStream();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Connection¡¡conn¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡id¡¡=¡¡-1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Exception¡¡err¡¡=¡¡null;

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡res.setContentType("text/html");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageHeader(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printCommentForm(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printComments(out);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printPageFooter(out);
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡public¡¡String¡¡getServletInfo()¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return¡¡"Guest¡¡Book¡¡Servlet¡¡v1.0\nCopyright¡¡\251¡¡2000¡¡meng_bo";
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡private¡¡void¡¡printCommentForm(ServletOutputStream¡¡out)
¡¡¡¡¡¡¡¡throws¡¡IOException¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡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("");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("
Name:
Email:
Comments:
");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("
");
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡private¡¡void¡¡printComments(ServletOutputStream¡¡out)
¡¡¡¡¡¡¡¡throws¡¡IOException¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Connection¡¡conn¡¡=¡¡null;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DateFormat¡¡fmt¡¡=¡¡DateFormat.getDateInstance(DateFormat.FULL,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Locale.getDefault());
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡url¡¡=¡¡"jdbc:mysql://localhost.localdomain:3306/GuestBook?user=guest&password=password";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Statement¡¡stmt;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ResultSet¡¡results;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡conn¡¡=¡¡DriverManager.getConnection(url);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡stmt¡¡=¡¡conn.createStatement();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡results¡¡=¡¡stmt.executeQuery("SELECT¡¡name,¡¡email,¡¡cmt_date,¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"comment,¡¡comment_id¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"FROM¡¡comments¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"ORDER¡¡BY¡¡cmt_date");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("
");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while(¡¡results.next()¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡name,¡¡email,¡¡cmt;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡java.util.Date¡¡date;

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡name¡¡=¡¡results.getString(1);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡results.wasNull()¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡name¡¡=¡¡"Unknown¡¡User";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡email¡¡=¡¡results.getString(2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡results.wasNull()¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡email¡¡=¡¡"user@host";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date¡¡=¡¡results.getDate(3);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡results.wasNull()¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date¡¡=¡¡new¡¡java.util.Date();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmt¡¡=¡¡results.getString(4);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡results.wasNull()¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmt¡¡=¡¡"No¡¡comment.";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("
"¡¡+¡¡name¡¡+¡¡"¡¡("¡¡+¡¡email¡¡+¡¡")¡¡on¡¡"¡¡+
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fmt.format(date));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmt¡¡=¡¡noHTML(cmt);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("
¡¡
"¡¡+¡¡cmt¡¡+¡¡"
");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("
");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch(¡¡SQLException¡¡e¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out.println("A¡¡database¡¡error¡¡occurred:¡¡"¡¡+¡¡e.getMessage());
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡conn¡¡!=¡¡null¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡{¡¡conn.close();¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch(¡¡Exception¡¡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)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡cmt.indexOf("<")¡¡!=¡¡-1¡¡||¡¡cmt.indexOf(">")¡¡!=¡¡-1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡tmp¡¡=¡¡"";

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for(int¡¡i=0;¡¡i¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡char¡¡c¡¡=¡¡cmt.charAt(i);

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡c¡¡==¡¡'<'¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡tmp¡¡+¡¡"<";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡if(¡¡c¡¡==¡¡'>'¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡tmp¡¡+¡¡">";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡tmp¡¡+¡¡c;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmt¡¡=¡¡tmp;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return¡¡cmt;
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡private¡¡String¡¡fixComment(String¡¡comment)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡comment.indexOf("'")¡¡!=¡¡-1¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡tmp¡¡=¡¡"";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for(int¡¡i=0;¡¡i¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡char¡¡c¡¡=¡¡comment.charAt(i);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(¡¡c¡¡==¡¡'\''¡¡)¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡tmp¡¡+¡¡"\\'";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tmp¡¡=¡¡tmp¡¡+¡¡c;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡comment¡¡=¡¡tmp;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return¡¡comment;
¡¡¡¡¡¡¡¡}
}

¶ÔÓڸóÌÐòËùҪʹÓõÄÊý¾Ý¿âºÍ±í£¬ÎÒдÁËÈçÏÂÈý¸ö½Å±¾£º

1.¡¡create_database.sql

create¡¡database¡¡GuestBook;
grant¡¡select,insert,update,delete,create,drop
on¡¡GuestBook.*
to¡¡guest@localhost.localdomain
identified¡¡by¡¡'password';

2.¡¡create_tables.sql

use¡¡GuestBook;
create¡¡table¡¡sys_gen(
next_id¡¡int(8)¡¡not¡¡null,
id¡¡char(10)¡¡not¡¡null);

insert¡¡into¡¡sys_gen¡¡(next_id,¡¡id)¡¡values¡¡(0,¡¡'comment_id');

create¡¡table¡¡comments(
comment_id¡¡int(8)¡¡not¡¡null,
email¡¡varchar(64),
name¡¡varchar(32),
comment¡¡varchar(128),
cmt_date¡¡date¡¡default¡¡'0000-00-00'¡¡not¡¡null);

3.¡¡install.sh

#/bin/sh

mysql¡¡--user=root¡¡--host=localhost.localdomain¡¡--password=password¡¡<¡¡create_database.sql
mysql¡¡--user=guest¡¡--host=localhost.localdomain¡¡--password=password¡¡<¡¡create_tables.sql

ÓÐÁËÕâЩ´úÂ룬һÇоÍÔÙÃ÷°×²»¹ýÁ˰ɡ£ÕâÀﻹÐèҪעÒâµÄÊÇ¡°<¡±ºÍ¡°>¡±ÔÚHTMLÎļþÖлá³öÎÊÌ⣬ËùÒÔË­Òª°ÑÕâÆªÎĵµ×ª»»³ÉHTMLÎļþʱһ¶¨Òª×¢Òâ¡£

(http://www.fanqiang.com)     ½øÈ롾UNIXÂÛ̳¡¿

Ïà¹ØÎÄÕÂ
 

¡ï  ·®Ç¿ÖÆ×÷ »¶Ó­·ÖÏí  ¡ï