编写一个servlet,在servlet中查询goods表中的记录,并在showMoveGoods.jsp叶敏中逆序下按时偶数行的记录
时间: 2024-01-22 20:21:04 浏览: 152
首先,需要在servlet中编写数据库查询代码,获取goods表中的记录。然后,将记录按照要求排序,并将结果传递给showMoveGoods.jsp页面进行展示。
以下是一个简单的实现示例:
```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.Collections;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ShowMoveGoodsServlet")
public class ShowMoveGoodsServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应内容类型
response.setContentType("text/html;charset=UTF-8");
// 连接数据库并查询goods表中的记录
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<String> goodsList = new ArrayList<String>();
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "123456");
String sql = "SELECT * FROM goods";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
goodsList.add(rs.getString("name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 将记录按照要求排序
Collections.reverse(goodsList);
List<String> resultList = new ArrayList<String>();
for (int i = 1; i <= goodsList.size(); i++) {
if (i % 2 == 0) {
resultList.add(goodsList.get(i - 1));
}
}
// 将结果传递给showMoveGoods.jsp页面进行展示
request.setAttribute("resultList", resultList);
request.getRequestDispatcher("/showMoveGoods.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
```
在以上代码中,我们通过JDBC连接数据库并查询goods表中的记录,并将记录逆序排序。然后,我们按照要求获取偶数行的记录,并将结果传递给showMoveGoods.jsp页面进行展示。
在showMoveGoods.jsp页面中,我们可以通过以下方式获取结果并进行展示:
```html
<%@page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>Show Move Goods</title>
</head>
<body>
<table border="1">
<tr>
<td>ID</td>
<td>Name</td>
</tr>
<%@ page import="java.util.List" %>
<% List<String> resultList = (List<String>) request.getAttribute("resultList"); %>
<% if (resultList != null && resultList.size() > 0) { %>
<% for (int i = 0; i < resultList.size(); i++) { %>
<tr>
<td><%= i + 1 %></td>
<td><%= resultList.get(i) %></td>
</tr>
<% } %>
<% } else { %>
<tr>
<td colspan="2">No data found.</td>
</tr>
<% } %>
</table>
</body>
</html>
```
在以上代码中,我们通过JSP页面获取从servlet传递过来的结果,并将结果按照表格形式展示出来。注意,我们使用了JSTL标签库来遍历resultList中的数据。如果resultList为空或者没有数据,则显示"No data found."的提示信息。
阅读全文