addMessage.htm
代码;
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="/guestbook3/js/validation-framework.js"></script> <script type="text/javascript" src="/guestbook3/fckeditor/fckeditor.js"></script> <title>add message</title> </head> <body> <p align="center">请您输入留言</p> <p align="center"><a href="/guestbook3/servlet/getMessages">查看留言</a></p> <form id="form1" name="form1" method="post" action="/guestbook3/servlet/addMessage" onsubmit="return doValidate(this)"> <table width="600" height="400" border="0" align="center"> <tr> <td width="100">姓名:</td> <td width="500"> <input name="name" type="text" id="name" size="40" maxlength="20" /> </td> </tr> <tr> <td>E-Mail:</td> <td> <input name="email" type="text" id="email" size="40" maxlength="40" /> </td> </tr> <tr> <td>电话:</td> <td> <input name="phone" type="text" id="phone" size="40" maxlength="20" /> </td> </tr> <tr> <td>主题:</td> <td> <input name="title" type="text" id="title" size="80" maxlength="80" /> </td> </tr> <tr> <td valign="top">内容:</td> <td> <script type="text/javascript"> var oFCKeditor = new FCKeditor("content"); oFCKeditor.BasePath = '/guestbook3/fckeditor/' ; oFCKeditor.Height = 300 ; oFCKeditor.ToolbarSet = 'Basic'; oFCKeditor.Create() ; </script> </td> </tr> <tr> <td></td> <td> <input type="submit" name="Submit" value="提交" /> <input type="reset" name="Reset" value="重置" /> </td> </tr> </table> </form> </body> </html>
AddMessageServlet.java
代码:
package webbook.guestbook; import java.io.*; import java.sql.SQLException; import java.text.SimpleDateFormat; import javax.naming.*; import javax.servlet.ServletException; import javax.servlet.http.*; import javax.sql.DataSource; import org.apache.commons.dbutils.QueryRunner; import webbook.util.StringUtil;
public class AddMessageServlet extends HttpServlet { private static final long serialVersionUID = -8349454122547148005L;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sql = "insert into guestbook (id,name,email,phone,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)"; int result = 0; request.setCharacterEncoding("utf-8"); String name = request.getParameter("name"); String title = request.getParameter("title"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>guestbook input page</title></head>"); out.println("<body>"); if (StringUtil.validateNull(name)) { out.println("对不起,姓名不能为空,请您重新输入!<br>"); out.println("<a href=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言</a><br>"); } else if (StringUtil.validateNull(title)) { out.println("对不起,主题不能为空,请您重新输入!<br>"); out.println("<a href=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言</a><br>"); } else {
//格式化时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String param[] = { StringUtil.filterHtml(name), StringUtil.filterHtml(request.getParameter("email")), StringUtil.filterHtml(request.getParameter("phone")), StringUtil.filterHtml(title), request.getParameter("content"), sdf.format(new java.util.Date()) }; try { Context initContext = new InitialContext(); DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds"); QueryRunner qr = new QueryRunner(ds); result = qr.update(sql, param); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }
if (result == 0) { out.println("对不起,添加留言不成功,请您重新输入!<BR>"); out.println("<a href=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言</a><BR>"); } else { out.println("祝贺您,成功添加留言。<BR>"); out.println("<a href=\"" + request.getContextPath() + "/servlet/getMessages\">查看所有留言内容</a><BR>"); } out.println(" </body>"); out.println("</html>"); out.flush(); out.close(); } } }
GetMessageServlet.java
代码:
package webbook.guestbook; import java.io.*; import java.sql.*; import java.util.*; import javax.naming.*; import javax.servlet.*; import javax.servlet.http.*; import javax.sql.DataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.MapListHandler; import webbook.util.StringUtil;
public class GetMessagesServlet extends HttpServlet { private static final long serialVersionUID = 5964428201228635704L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sql = "select * from guestbook order by id desc"; response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>display messages</title></head>"); out.println("<style>"); out.println("*{font-family:\"宋体\";font-size: 14px}"); out.println("</style>"); out.println("<body><center>"); out.println("<a href=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言内容</a><br>"); out.println("留言内容<br><br>");
try { Context initContext = new InitialContext(); DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds"); QueryRunner qr = new QueryRunner(ds); // 使用MapListHandler MapListHandler handler = new MapListHandler(); List list = (List) qr.query(sql, handler); for (int i = 0; i < list.size(); i++) { Map map = (Map) list.get(i); printRow(out, map); } } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } out.println("</center></body>"); out.println("</html>"); out.flush(); out.close(); }
private void printRow(PrintWriter out, Map map) { out.println("<table width=\"600\" border=\"1\" bordercolor=\"000000\" style=\"table-layout:fixed;word-break:break-all\">"); out.println("<tr><td width=\"50\" bordercolor=\"ffffff\">编号:</td>"); out.println("<td width=\"550\" bordercolor=\"ffffff\">" + map.get("id") + "</td></tr>"); out.println("<tr><td bordercolor=\"ffffff\">姓名:</td><td bordercolor=\"ffffff\">" + map.get("name") + "</td></tr>"); out.println("<tr> <td bordercolor=\"ffffff\">电话:</td><td bordercolor=\"ffffff\">" + StringUtil.chanageNull((String) map.get("phone"), "没填") + "</td></tr>"); out.println(" <tr><td bordercolor=\"ffffff\">email:</td><td bordercolor=\"ffffff\">" + StringUtil.chanageNull((String) map.get("email"), "没填") + "</td> </tr>"); out.println("<tr><td bordercolor=\"ffffff\">主题:</td><td bordercolor=\"ffffff\" >" + map.get("title") + " </td> </tr>"); out.println("<tr><td valign=\"top\" bordercolor=\"ffffff\">内容</td>"); out.println(" <td valign=\"top\" bordercolor=\"ffffff\">" + StringUtil.chanageNull((String) map.get("content"), "没填") + "</td> </tr>"); out.println("<tr><td bordercolor=\"ffffff\">时间</td><td bordercolor=\"ffffff\">" + map.get("time") + " </td></tr>"); out.println("</table><br>"); } }