基于JSP的留言本代码
时间: 2023-12-12 17:03:33 浏览: 19
以下是一个基于JSP的留言本的代码示例:
留言本页面(message.jsp):
```
<html>
<head>
<title>留言本</title>
</head>
<body>
<h1>留言列表</h1>
<table>
<thead>
<tr>
<th>留言人</th>
<th>留言内容</th>
<th>留言时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${messages}" var="message">
<tr>
<td>${message.username}</td>
<td>${message.content}</td>
<td>${message.time}</td>
</tr>
</c:forEach>
</tbody>
</table>
<h1>发表留言</h1>
<form action="messageServlet" method="post">
<label>留言人:</label>
<input type="text" name="username"><br>
<label>留言内容:</label>
<textarea name="content"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
解释:这是一个JSP页面,包含一个留言列表和一个留言表单。使用了JSTL标签库来遍历留言列表,将每个留言的用户名、内容和时间显示在表格中。留言表单包含一个用户名输入框、一个内容文本框和一个提交按钮,提交到messageServlet页面进行处理。
留言JavaBean类(Message.java):
```
public class Message {
private String username;
private String content;
private Date time;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
```
解释:这是一个JavaBean类,用于存储留言信息。包含留言人的用户名、留言的内容和留言的时间三个属性,以及对应的getter和setter方法。
留言Servlet类(MessageServlet.java):
```
public class MessageServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String content = request.getParameter("content");
Date time = new Date();
Message message = new Message();
message.setUsername(username);
message.setContent(content);
message.setTime(time);
// 将留言存储到数据库中,这里使用了JDBC
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
stmt = conn.prepareStatement("INSERT INTO message (username, content, time) VALUES (?, ?, ?)");
stmt.setString(1, username);
stmt.setString(2, content);
stmt.setTimestamp(3, new Timestamp(time.getTime()));
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
request.getRequestDispatcher("message.jsp").forward(request, response);
}
}
```
解释:这是一个Servlet类,用于处理留言表单的提交。从request中获取留言人的用户名和留言的内容,以及当前的时间,封装成一个Message对象。然后使用JDBC将Message对象中的数据存储到数据库中。最后将请求转发到message.jsp页面,显示最新的留言列表。
需要注意的是,这只是一个简单的示例代码,实际应用中需要考虑更多的安全性和性能问题。