答案:Java实现留言板需通过servlet处理请求,JSP展示页面,JDBC操作mysql存储留言数据。首先设计messages表存储姓名、内容和时间;创建Message实体类与DBUtil工具类获取数据库连接;MessageDAO封装查询和添加留言方法;MessageServlet接收GET请求获取所有留言并转发到list.jsp显示,接收POST请求添加新留言;前端使用JSP展示留言列表及提交表单,设置字符编码防止乱码,并用PreparedStatement防sql注入;最后部署至tomcat服务器运行访问对应URL即可。该系统支持基本的留言功能并具备可扩展性。

在Java中实现留言板功能,核心是处理用户输入、存储留言数据并展示出来。可以通过Java Web技术(如Servlet + JSP)结合数据库来完成。下面是一个简单但完整的实现思路和步骤。
1. 功能需求分析
一个基本的留言板应支持:
- 显示所有留言
- 添加新留言(包含姓名、留言内容、时间)
- 数据持久化存储(使用数据库)
2. 技术选型与环境准备
使用以下技术栈:
3. 数据库设计
创建一张留言表 messages:
立即学习“Java免费学习笔记(深入)”;
CREATE DATABASE guestbook; USE guestbook; <p>CREATE TABLE messages ( id int AUTO_INCREMENT PRIMARY KEY, name varCHAR(50) NOT NULL, content TEXT NOT NULL, created_at timestamp DEFAULT CURRENT_TIMESTAMP );</p>
4. Java实体类 Message
定义一个类表示留言数据:
public class Message {
private int id;
private String name;
private String content;
private Timestamp createdAt;
// 构造函数、getter 和 setter 省略
}
5. JDBC工具类 DBUtil
封装数据库连接:
import java.sql.Connection;
import java.sql.DriverManager;
public class DBUtil {
private Static final String URL = “jdbc:mysql://localhost:3306/guestbook”;
private static final String USER = “root”;
private static final String PASSword = “your_password“;
static {
try {
Class.forName(“com.mysql.cj.jdbc.Driver”);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws Exception {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
6. 留言操作 DAO 类
提供增删查方法:
import java.sql.*; ; import java.util.ArrayList; ; import java.util.List;
public class MessageDAO { public List
while (rs.next()) { Message msg = new Message(); msg.setId(rs.getInt("id")); msg.setName(rs.getString("name")); msg.setContent(rs.getString("content")); msg.setCreatedAt(rs.getTimestamp("created_at")); messages.add(msg); } } return messages; } public void addMessage(String name, String content) throws Exception { String sql = "INSERT INTO messages(name, content) VALUES(?, ?)"; try (Connection conn = DBUtil.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setString(1, name); stmt.setString(2, content); stmt.executeUpdate(); } }
}
7. Servlet 处理请求
创建 MessageServlet.java 来处理展示和提交:
import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; import java.util.List;
public class MessageServlet extends HttpServlet { private MessageDAO messageDAO = new MessageDAO();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { List<Message> messages = messageDAO.getAllMessages(); request.setAttribute("messages", messages); request.getRequestDispatcher("/list.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); throw new ServletException(e); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String content = request.getParameter("content"); if (name != null && content != null && !name.trim().isEmpty() && !content.trim().isEmpty()) { try { messageDAO.addMessage(name, content); } catch (Exception e) { e.printStackTrace(); } } response.sendRedirect("MessageServlet"); }
}
8. 前端页面 list.jsp
显示留言和添加表单:
<%@ page contentType=”text/html;charset=UTF-8″ language=”java” %>
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
<html>
<head>
<title>留言板</title>
<style>
.message { margin: 10px 0; padding: 10px; border: 1px solid #ccc; }
</style>
</head>
<body>
<h2>欢迎来到留言板</h2>
<form method=”post” action=”MessageServlet”>
姓名:<input type=”text” name=”name” required /><br>
留言:<textarea name=”content” required></textarea><br>
<button type=”submit”>提交</button>
</form>
<h3>所有留言</h3>
<c:foreach var=”msg” items=”${messages}”>
<div class=”message”>
<strong>${msg.name}</strong>
<small>${msg.createdAt}</small>
<p>${msg.content}</p>
</div>
</c:forEach>
</body>
</html>
9. 配置 web.xml(可选,若用注解可省略)
如果不用@WebServlet注解,需在web.xml注册Servlet:
<servlet>
<servlet-name>MessageServlet</servlet-name>
<servlet-class>MessageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MessageServlet</servlet-name>
<url-pattern>/MessageServlet</url-pattern>
</servlet-mapping>
10. 部署与运行
将项目打包为war或放入Tomcat的webapps目录,启动Tomcat,访问:
http://localhost:8080/your-app/MessageServlet
基本上就这些。不复杂但容易忽略细节,比如字符编码、SQL注入防范(可用PreparedStatement)、异常处理等。后续可扩展支持删除、分页、用户登录等功能。


