实现基于JSP的留言本
时间: 2023-12-11 19:02:52 浏览: 136
好的,下面是一个简单的基于JSP的留言本实现步骤。
1. 创建数据库表,用于存储留言信息,包括留言ID、留言人、留言时间、留言内容等字段,例如:
```sql
CREATE TABLE message (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
create_time DATETIME,
content VARCHAR(100)
);
```
2. 编写JavaBean类,用于封装留言信息,例如:
```java
public class Message {
private int id;
private String username;
private Date createTime;
private String content;
// getter和setter方法
// ...
}
```
3. 编写Servlet类,用于接收用户提交的留言信息并将其存储到数据库中,例如:
```java
public class AddMessageServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取留言信息
String username = request.getParameter("username");
String content = request.getParameter("content");
// 封装留言信息
Message message = new Message();
message.setUsername(username);
message.setCreateTime(new Date());
message.setContent(content);
// 存储到数据库
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
PreparedStatement ps = conn.prepareStatement("INSERT INTO message(username, create_time, content) VALUES (?, ?, ?)")) {
ps.setString(1, message.getUsername());
ps.setDate(2, new java.sql.Date(message.getCreateTime().getTime()));
ps.setString(3, message.getContent());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
// 跳转到留言列表页面
response.sendRedirect("message.jsp");
}
}
```
4. 编写JSP页面,用于显示留言列表和留言表单,例如:
message.jsp:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言列表</title>
</head>
<body>
<h1>留言列表</h1>
<table>
<tr>
<th>ID</th>
<th>留言人</th>
<th>留言时间</th>
<th>留言内容</th>
</tr>
<c:forEach var="message" items="${messages}">
<tr>
<td>${message.id}</td>
<td>${message.username}</td>
<td>${message.createTime}</td>
<td>${message.content}</td>
</tr>
</c:forEach>
</table>
<h1>添加留言</h1>
<form action="addMessage" method="post">
留言人:<input type="text" name="username"><br>
留言内容:<textarea name="content"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
5. 在JSP页面中引入JavaBean和Servlet,实现数据的交互和展示,例如:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.List" %>
<%@ page import="com.example.Message" %>
<%@ page import="java.sql.*" %>
<%
// 从数据库中读取留言列表
List<Message> messages = new ArrayList<>();
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM message ORDER BY create_time DESC")) {
while (rs.next()) {
Message message = new Message();
message.setId(rs.getInt("id"));
message.setUsername(rs.getString("username"));
message.setCreateTime(rs.getDate("create_time"));
message.setContent(rs.getString("content"));
messages.add(message);
}
} catch (SQLException e) {
e.printStackTrace();
}
// 将留言列表传递给JSP页面
request.setAttribute("messages", messages);
%>
<%@include file="message.jsp" %>
```
这样,一个简单的基于JSP的留言本就实现了。用户可以在留言列表页面查看已经提交的留言,并在添加留言页面提交新的留言。需要注意的是,本示例仅供参考,实际应用中需要根据具体需求进行修改和优化。
阅读全文