您的位置:首页 > 编程语言 > Java开发

java实现简单留言板功能的代码实例

2011-07-22 11:23 1276 查看
java实现简单留言板功能的代码实例

数据库对应的表:

guestbook:id ,name,phone,email,title,content,time; <pk>id

新建web project:guestbook

build Path:引入连接数据库的驱动的类库

在webRoot目录中加入:

+faceditor

+js

web.xml

代码:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<servlet>

<servlet-name>AddMessageServlet</servlet-name>

<servlet-class>webbook.guestbook.AddMessageServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>GetMessagesServlet</servlet-name>

<servlet-class>webbook.guestbook.GetMessagesServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>AddMessageServlet</servlet-name>

<url-pattern>/servlet/addMessage</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>GetMessagesServlet</servlet-name>

<url-pattern>/servlet/getMessages</url-pattern>

</servlet-mapping>

</web-app>

addMessage.htm

代码:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/css" src="/guestbook/js/validation-framework.js"></script>

<script type="text/javascript" src="/guestbook/fckeditor/fckeditor.js"></script>

<title>add message</title>

</head>

<body>

<p align="center">请您输入留言</p>

<p align="center"><a href="/guestbook/servlet/getMessages">查看留言</a></p>

<form id="form1" name="form1" method="post" action="/guestbook/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 = '/guestbook/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>

content.html

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>display content</title>

</head>

<body>

<div align="center">

留言内容

<br />

<br />

<table width="357" height="107" border="1">

<tr>

<td width="48" >编号</td>

<td width="293" align="left">12</td>

</tr>

<tr>

<td>姓名</td>

<td align="left">liuwei</td>

</tr>

<tr>

<td>电话</td>

<td align="left">2922266</td>

</tr>

<tr>

<td>email</td>

<td align="left">phpa@www.3ppt.com</td>

</tr>

<tr>

<td>主题</td>

<td align="left">you can test </td>

</tr>

<tr height="50">

<td valign="top">内容</td>

<td valign="top" align="left">test content! </td>

</tr>

</table>

<p> </p>

<table width="357" height="107" border="1" align="center">

<tr>

<td width="48">编号</td>

<td width="293"> </td>

</tr>

<tr>

<td>姓名</td>

<td> </td>

</tr>

<tr>

<td>电话</td>

<td> </td>

</tr>

<tr>

<td>email</td>

<td> </td>

</tr>

<tr>

<td>主题</td>

<td> </td>

</tr>

<tr>

<td>内容</td>

<td> </td>

</tr>

</table>

<p> </p>

<table width="357" height="107" border="1" align="center">

<tr>

<td width="48">编号</td>

<td width="293"> </td>

</tr>

<tr>

<td>姓名</td>

<td> </td>

</tr>

<tr>

<td>电话</td>

<td> </td>

</tr>

<tr>

<td>email</td>

<td> </td>

</tr>

<tr>

<td>主题</td>

<td> </td>

</tr>

<tr>

<td><p>内容</p>

<p> </p>

<p> </p></td>

<td> </td>

</tr>

</table>

</div>

</body>

</html>

validation-config.xml

代码;

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE validation-config SYSTEM "validation-config.dtd">

<validation-config lang="auto">

<form id="form1" show-error="alert" show-type="all">

<field name="name" display-name="姓名" onfail="">

<depend name="required" />

<depend name="minLength" param0="2" />

<depend name="maxLength" param0="20" />

</field>

<field name="title" display-name="主题">

<depend name="required" />

</field>

<field name="email" display-name="email">

<depend name="email" />

</field>

</form>

</validation-config>

---------------------------------------------------------------------

******************************************************

这是一个很有用的工具类,包含了:

  判读字符串参数是否为空:validateNull(String args)

  判断输入的字符串参数是否为空或者是"null"字符:chanageNull(String source, String target)

  过滤<, >,n 字符的方法:filterHtml(String input)

*****************************************************

---------------------------------------------------------------------

StringUtil.java

代码:

package webbook.util;

public class StringUtil {

/**

* 判断输入的字符串参数是否为空。

* @param args 输入的字串

* @return true/false

*/

public static boolean validateNull(String args) {

if (args == null || args.length() == 0) {

return true;

} else {

return false;

}

}

/**

* 判断输入的字符串参数是否为空或者是"null"字符,如果是,就返回target参数,如果不是,就返回source参数。

*/

public static String chanageNull(String source, String target) {

if (source == null || source.length() == 0 || source.equalsIgnoreCase("null")) {

return target;

} else {

return source;

}

}

/**

* 过滤<, >,n 字符的方法。

* @param input 需要过滤的字符

* @return 完成过滤以后的字符串

*/

public static String filterHtml(String input) {

if (input == null) {

return null;

}

if (input.length() == 0) {

return input;

}

input = input.replaceAll("&", "&");

input = input.replaceAll("<", "<");

input = input.replaceAll(">", ">");

input = input.replaceAll(" ", " ");

input = input.replaceAll("'", "'");

input = input.replaceAll(""", """);

input = input.replaceAll("n", "<br>");

return input;

}

}

AddmessageServlet.java

代码;

package webbook.guestbook;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.text.SimpleDateFormat;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

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 url = "jdbc:oracle:thin:@192.168.1.20:1521:ora9";

String username = "scott";

String password = "tiger";

String sql = "insert into guestbook (id,name,email,phone,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)";

int result = 0;

Connection conn = null;

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 {

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

conn = DriverManager.getConnection(url, username, password);

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, StringUtil.filterHtml(name));

pstmt.setString(2, StringUtil.filterHtml(request.getParameter("email")));

pstmt.setString(3, StringUtil.filterHtml(request.getParameter("phone")));

pstmt.setString(4, StringUtil.filterHtml(title));

pstmt.setString(5, request.getParameter("content"));

//设置格式化时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

pstmt.setString(6, sdf.format(new java.util.Date()));

result = pstmt.executeUpdate();

pstmt.close();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} 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 javax.servlet.*;

import javax.servlet.http.*;

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 url = "jdbc:oracle:thin:@192.168.1.20:1521:ora9";

String username = "scott";

String password = "tiger";

String sql = "select * from guestbook order by id desc";

Connection conn = null;

response.setContentType("text/html;charset=utf-8");

PrintWriter out = response.getWriter();

out.println("<html>");

out.println("<head><title>display messages</title></head>");

out.println("<body>");

out.println("<a href="" + request.getContextPath() + "/addMessage.htm">添加新的留言内容</a><br>");

out.println("留言内容<br><br>");

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

conn = DriverManager.getConnection(url, username, password);

PreparedStatement pstmt = conn.prepareStatement(sql);

//查询结果是一个ResultSet对象。

ResultSet rs = pstmt.executeQuery();

while (rs.next()) {

this.printRow(out, rs);

}

rs.close();

pstmt.close();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

out.println(" </body>");

out.println("</html>");

out.flush();

out.close();

}

private void printRow(PrintWriter out, ResultSet rs) throws SQLException {

out.println("<table width="600" border="1" style="table-layout:fixed;word-break:break-all">");

out.println("<tr><td width="50">编号</td>");

out.println("<td width="550">" + rs.getInt("id") + "</td></tr>");

out.println("<tr><td>姓名</td><td>" + rs.getString("name") + "</td></tr>");

out.println("<tr><td>电话</td><td>" +
StringUtil.chanageNull(rs.getString("phone"), "没填") +
"</td></tr>");

out.println("<tr><td>email</td><td>" +
StringUtil.chanageNull(rs.getString("email"), "没填") +
"</td></tr>");

out.println("<tr><td valign="top">主题</td><td>" + rs.getString("title") + " </td></tr>");

out.println("<tr><td valign="top">内容</td>");

out.println("<td>" + StringUtil.chanageNull(rs.getString("content"), "没填") + "</td></tr>");

out.println("<tr><td>时间</td><td>" + rs.getString("time") + " </td></tr>");

out.println("</table><br>");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: