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