public List<News> deleteNews(List<Integer> ids) { List<News> list = new ArrayList<>(); // 创建一个空的集合用于存放被删除的 News 对象 db = new DBUtil(); String sql = "DELETE FROM news WHERE nid IN (" + String.join(",", Collections.nCopies(ids.size(), "?")) + ")"; // 构造 SQL 语句 try { PreparedStatement ps = db.getPs(sql); // 设置 SQL 语句中的占位符参数 for (int i = 0; i < ids.size(); i++) { ps.setInt(i + 1, ids.get(i)); } int count = ps.executeUpdate(); // 执行 SQL 语句 if (count > 0) { // 如果有数据被删除,则查询被删除的数据并添加到集合中 sql = "SELECT * FROM news WHERE nid IN (" + String.join(",", Collections.nCopies(ids.size(), "?")) + ")"; ps = db.getPs(sql); for (int i = 0; i < ids.size(); i++) { ps.setInt(i + 1, ids.get(i)); } ResultSet rs = ps.executeQuery(); while (rs.next()) { News news = new News(); news.setId(rs.getInt("nid")); news.setTitle(rs.getString("title")); news.setContent(rs.getString("content")); news.setCreateTime(rs.getTimestamp("createtime")); list.add(news); } } } catch (SQLException e) { e.printStackTrace(); } finally { db.close(); } return list; // 返回被删除的 News 对象集合 }根据这串代码写出servlet.java的代码
时间: 2024-01-25 20:04:44 浏览: 78
假设前端传来的请求参数为一个数组 `ids`,则可以在 Servlet 中实现以下代码:
```java
public class DeleteNewsServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] ids = request.getParameterValues("ids");
List<Integer> idList = new ArrayList<>();
for (String id : ids) {
idList.add(Integer.parseInt(id));
}
List<News> deletedNews = deleteNews(idList); // 调用上面的 deleteNews 方法
request.setAttribute("deletedNews", deletedNews);
request.getRequestDispatcher("/deleted_news.jsp").forward(request, response);
}
}
```
其中,`deleteNews` 方法需要根据具体情况实现。这里假设该方法已经实现好了。在 `doPost` 方法中,我们首先获取前端传来的请求参数 `ids`,然后将其转换为整型的 `List`,并传递给 `deleteNews` 方法进行删除操作。最后将被删除的新闻对象集合存入 request 域中,并转发到一个名为 `deleted_news.jsp` 的 JSP 页面进行展示。
阅读全文