编写一个servlet,在servlet中查询goods表中的记录,并在showMoveGoods.jsp页面中逆序显示偶数行的记录。在本例中需要使用实体类goods,但需要为Goods添加一个属性rowno封装行号。
时间: 2024-01-22 14:21:13 浏览: 28
首先,在实体类Goods中添加一个属性rowno和对应的getter和setter方法:
```java
public class Goods {
private int id;
private String name;
private double price;
private int rowno;
// 省略构造方法和其他属性的getter和setter方法
public int getRowno() {
return rowno;
}
public void setRowno(int rowno) {
this.rowno = rowno;
}
}
```
接着,在servlet中查询goods表中的记录,并为每个记录设置rowno属性:
```java
public class GoodsServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Goods> goodsList = new ArrayList<>();
// 连接数据库并查询goods表中的所有记录
try {
Connection conn = ...; // 获取数据库连接
PreparedStatement ps = conn.prepareStatement("select * from goods");
ResultSet rs = ps.executeQuery();
int rowno = 1;
while (rs.next()) {
Goods goods = new Goods(rs.getInt("id"), rs.getString("name"), rs.getDouble("price"));
goods.setRowno(rowno++);
goodsList.add(goods);
}
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
// 将查询结果存入request中
request.setAttribute("goodsList", goodsList);
// 转发到showMoveGoods.jsp页面
request.getRequestDispatcher("/showMoveGoods.jsp").forward(request, response);
}
}
```
最后,在showMoveGoods.jsp页面中逆序显示偶数行的记录:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Show Move Goods</title>
</head>
<body>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Price</th>
</tr>
<c:forEach var="goods" items="${goodsList}">
<c:if test="${goods.rowno % 2 == 0}">
<tr>
<td>${goods.id}</td>
<td>${goods.name}</td>
<td>${goods.price}</td>
</tr>
</c:if>
</c:forEach>
</table>
</body>
</html>
```
在这个页面中,使用了JSTL的<c:forEach>标签遍历goodsList,并使用<c:if>标签判断当前记录的行号是否为偶数行。如果是,则显示该记录的ID、Name和Price属性。最终结果是逆序显示goods表中偶数行的记录。