给我写一个用Javaweb+mysql的简单留言板
时间: 2023-12-08 18:03:35 浏览: 60
好的,以下是一个用Javaweb+mysql的简单留言板的实现步骤:
1. 创建数据库和表格:
首先需要在mysql中创建一个名为message_board的数据库,然后在该数据库中创建一个名为messages的表格,表格中包含以下字段:id(主键,自增)、username、content、create_time。
2. 编写前端页面:
创建一个index.jsp页面,其中包含一个表单,用户可以输入用户名和留言内容,以及一个提交按钮。
3. 编写后端处理程序:
a. 创建一个servlet,用来处理用户提交的表单数据,将数据存储到数据库中,并重定向到一个新页面。
b. 创建另一个servlet,用来从数据库中取出所有留言,并将它们显示在一个新页面中。
4. 部署应用程序:
将编写好的代码打成war包,然后将其部署到Tomcat等服务器上即可。
以下是代码示例:
1. 创建数据库和表格:
```
CREATE DATABASE message_board;
USE message_board;
CREATE TABLE messages (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
content TEXT NOT NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
2. 编写前端页面:
index.jsp
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form action="addMessage" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" required><br>
<label for="content">留言内容:</label>
<textarea name="content" rows="5" required></textarea><br>
<input type="submit" value="提交">
</form>
<p><a href="showMessages">查看留言</a></p>
</body>
</html>
```
3. 编写后端处理程序:
AddMessageServlet.java
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AddMessageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String content = request.getParameter("content");
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/message_board", "root", "password");
PreparedStatement stmt = conn.prepareStatement("INSERT INTO messages (username, content) VALUES (?, ?)");
stmt.setString(1, username);
stmt.setString(2, content);
stmt.executeUpdate();
response.sendRedirect("success.jsp");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
response.sendRedirect("error.jsp");
}
}
}
```
ShowMessagesServlet.java
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ShowMessagesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Message> messages = new ArrayList<>();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/message_board", "root", "password");
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM messages ORDER BY create_time DESC");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String username = rs.getString("username");
String content = rs.getString("content");
String createTime = rs.getString("create_time");
Message message = new Message(id, username, content, createTime);
messages.add(message);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
response.sendRedirect("error.jsp");
return;
}
request.setAttribute("messages", messages);
request.getRequestDispatcher("showMessages.jsp").forward(request, response);
}
}
```
Message.java
```java
public class Message {
private int id;
private String username;
private String content;
private String createTime;
public Message(int id, String username, String content, String createTime) {
this.id = id;
this.username = username;
this.content = content;
this.createTime = createTime;
}
public int getId() {
return id;
}
public String getUsername() {
return username;
}
public String getContent() {
return content;
}
public String getCreateTime() {
return createTime;
}
}
```
4. 部署应用程序:
将AddMessageServlet.java、ShowMessagesServlet.java、Message.java、index.jsp、success.jsp、showMessages.jsp、error.jsp打包成一个war包,并将其部署到Tomcat等服务器上即可。