发表留言

 

发表留言

 1、一个原始贴---一个回复贴

   tbl_a(id,title,content,auth,time)

   tbl_r(id,title,content,auth,time,pid)

 2、一个原始贴---一个回复贴—一个回复的回复

   tbl_news(id,title,content,auth,time,pid)

   id---存储ID

   pid---存储父ID

   

   所有原始贴  pid=0

   回复贴 pid=所回复的父贴ID

1. 发表留言: 首先,创建一个HTML页面,包含一个表单用于输入留言内容,提交表单时向Servlet发送POST请求。在Servlet中,获取表单数据,将留言内容存入数据库,重定向到留言显示页面。 HTML页面: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>发表留言</title> </head> <body> <h1>发表留言</h1> <form action="AddMessageServlet" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br> <label for="content">留言内容:</label> <textarea id="content" name="content"></textarea><br> <input type="submit" value="提交"> </form> </body> </html> ``` AddMessageServlet: ```java @WebServlet("/AddMessageServlet") public class AddMessageServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String username = request.getParameter("username"); String content = request.getParameter("content"); MessageDao dao = new MessageDao(); dao.addMessage(username, content); response.sendRedirect("ShowMessageServlet"); } } ``` MessageDao中addMessage方法: ```java public void addMessage(String username, String content) { Connection conn = null; PreparedStatement stmt = null; try { conn = DBUtil.getConnection(); String sql = "INSERT INTO message(username, content) VALUES (?, ?)"; stmt = conn.prepareStatement(sql); stmt.setString(1, username); stmt.setString(2, content); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(stmt, conn); } } ``` 2. 留言显示: 创建一个Servlet用于显示所有留言,从数据库中获取所有留言将其显示在HTML页面中。 ShowMessageServlet: ```java @WebServlet("/ShowMessageServlet") public class ShowMessageServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Message> messages = new MessageDao().getAllMessages(); request.setAttribute("messages", messages); request.getRequestDispatcher("showMessage.jsp").forward(request, response); } } ``` showMessage.jsp: ```jsp <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>留言板</title> </head> <body> <h1>留言板</h1> <a href="addMessage.html">发表留言</a> <hr> <c:forEach items="${messages}" var="message"> <p>${message.username}说:${message.content}</p> <form action="DeleteMessageServlet" method="post"> <input type="hidden" name="id" value="${message.id}"> <input type="submit" value="删除"> </form> <hr> </c:forEach> </body> </html> ``` MessageDao中getAllMessages方法: ```java public List<Message> getAllMessages() { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; List<Message> messages = new ArrayList<>(); try { conn = DBUtil.getConnection(); String sql = "SELECT id, username, content FROM message"; stmt = conn.prepareStatement(sql); rs = stmt.executeQuery(); while (rs.next()) { int id = rs.getInt(1); String username = rs.getString(2); String content = rs.getString(3); Message message = new Message(id, username, content); messages.add(message); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(rs, stmt, conn); } return messages; } ``` 3. 删除留言: 添加一个表单用于删除留言,向Servlet发送POST请求,从数据库中删除指定留言重定向到留言显示页面。 DeleteMessageServlet: ```java @WebServlet("/DeleteMessageServlet") public class DeleteMessageServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id = Integer.parseInt(request.getParameter("id")); MessageDao dao = new MessageDao(); dao.deleteMessage(id); response.sendRedirect("ShowMessageServlet"); } } ``` MessageDao中deleteMessage方法: ```java public void deleteMessage(int id) { Connection conn = null; PreparedStatement stmt = null; try { conn = DBUtil.getConnection(); String sql = "DELETE FROM message WHERE id = ?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, id); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(stmt, conn); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值