Java留言板功能实现方案
1. 项目概述
在这个项目中,我们将使用Java语言实现一个简单的留言板功能。用户可以在留言板上发布消息,浏览已发布的消息,并进行留言回复。
2. 技术选型
- 后端语言:Java
- 数据库:MySQL
- Web框架:Spring Boot
- 前端框架:Thymeleaf
3. 功能需求
- 用户登录和注册
- 发布消息
- 查看消息列表
- 留言回复
- 删除消息和留言
4. 数据库设计
我们将使用MySQL作为数据库存储数据。下面是数据库表的设计:
用户表(user)
列名 | 类型 | 描述 |
---|---|---|
id | int | 用户ID |
username | varchar(50) | 用户名 |
password | varchar(50) | 密码 |
消息表(message)
列名 | 类型 | 描述 |
---|---|---|
id | int | 消息ID |
userId | int | 用户ID |
content | varchar(1000) | 内容 |
createTime | timestamp | 创建时间 |
留言表(comment)
列名 | 类型 | 描述 |
---|---|---|
id | int | 留言ID |
messageId | int | 消息ID |
userId | int | 用户ID |
content | varchar(1000) | 内容 |
createTime | timestamp | 创建时间 |
5. 代码实现
5.1 后端代码
在后端代码中,我们使用Spring Boot框架来实现RESTful API。
5.1.1 用户注册和登录功能
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/register")
public ResponseEntity<?> registerUser(@RequestBody User user) {
userService.registerUser(user);
return ResponseEntity.ok().build();
}
@PostMapping("/login")
public ResponseEntity<?> loginUser(@RequestBody User user) {
String token = userService.loginUser(user);
return ResponseEntity.ok(token);
}
}
5.1.2 消息发布和留言功能
@RestController
public class MessageController {
@Autowired
private MessageService messageService;
@PostMapping("/messages")
public ResponseEntity<?> createMessage(@RequestBody Message message) {
messageService.createMessage(message);
return ResponseEntity.ok().build();
}
@GetMapping("/messages")
public List<Message> getAllMessages() {
return messageService.getAllMessages();
}
@PostMapping("/messages/{messageId}/comments")
public ResponseEntity<?> createComment(@PathVariable("messageId") int messageId,
@RequestBody Comment comment) {
messageService.createComment(messageId, comment);
return ResponseEntity.ok().build();
}
}
5.2 前端代码
在前端代码中,我们使用Thymeleaf模板引擎来生成HTML页面。
5.2.1 注册页面
<!DOCTYPE html>
<html>
<head>
<title>用户注册</title>
</head>
<body>
用户注册
<form method="post" action="/register">
<label for="username">用户名:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="注册">
</form>
</body>
</html>
5.2.2 登录页面
<!DOCTYPE html>
<html>
<head>
<title>用户登录</title>
</head>
<body>
用户登录
<form method="post" action="/login">
<label for="username">用户名:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="登录">
</form>
</body>
</html>
5.2.3 消息列表页面
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
留言板
<h