JavaWeb+MySQL实现简易留言板(详细的很

文章详细描述了如何在JavaWeb项目中创建用户、评论和回复的数据库表,使用了InnoDB引擎,并通过Servlet处理GET和POST请求实现数据的增删改查。还提及了一线Java开发者的学习资源推荐。
摘要由CSDN通过智能技术生成

CREATE TABLE t_user (

id int(11) NOT NULL AUTO_INCREMENT,

account varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,

password varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

realname varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

评论表

CREATE TABLE t_comment (

id int(11) NOT NULL AUTO_INCREMENT,

user_id int(11) NOT NULL COMMENT ‘评论人id,对应用户表的id’,

pl_content varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘评论的内容’,

pl_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

回复表

CREATE TABLE t_revert (

id int(11) NOT NULL AUTO_INCREMENT,

pl_id int(11) NOT NULL COMMENT ‘评论人id,对应t_comment.id’,

user_id int(11) DEFAULT NULL COMMENT ‘回复人id,对应当前登录的账号.id’,

hf_content varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘回复的内容’,

hf_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘回复的时间’,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb

好的,以下是一个用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等服务器上即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值