JSP分页

本文介绍了如何在JSP中实现分页功能,包括定义分页接口getCount、查询特定数据、分页条件判断及数据显示的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现jsp分页
1.定义一个分页的接口getCount

//分页
 public int getCount();
 //查询所有班级
 //pageSize 每行的行数  pageCode页数
 public List<ClassInfo> ClassServlet(int pageSize,int pageCode);

2.查询第三条数据

public int getCount() {
		// TODO Auto-generated method stub
		int result = 0;
		// 1.数据库连接
		Connection conn = Dome.getconn();
		// 2.书写sql语句
		String sql = "select count(*) from classinfo";
		// 3. 预编译sql
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			// 4.执行查询命令,查询出来的结果放到结果集rs里面
			ResultSet rs = ps.executeQuery();
			if (rs.next()) {
				result = rs.getInt(1);
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}

	@Override
	public List<ClassInfo> ClassServlet(int pageSize, int pageCode) {
		List<ClassInfo> list = new ArrayList<ClassInfo>();
		// 1.数据库连接
		Connection conn = Dome.getconn();
		// 2.书写sql语句
		String sql = "select*from classinfo limit ?,?";
		// 3. 预编译sql
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, (pageCode-1)*pageSize);
			ps.setInt(2, pageSize);
			// 4.执行查询命令,查询出来的结果放到结果集rs里面
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				//从结果循环读取数据
				ClassInfo c = new ClassInfo();
				c.setId(rs.getInt(1));
				c.setClassname(rs.getString(2));
				list.add(c);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

}

3.分页判断

request.setCharacterEncoding("UTF-8");
	  response.setContentType("text/html;charset=utf-8");
     int pageSize=5; int pageCode=0;int totalCount=0; int totalPagecode=0;
     //1.计算一共有多少页
	  IClassinfo id=new ClassInfoDaoImpl();
	  totalCount=id.getCount();
	  if (totalCount%pageSize==0) {
		  totalPagecode=totalCount/pageSize;
	} else {
		totalPagecode=totalCount/pageSize+1;
	}
	  //判断当前的页数
	  //第一次访问的时候,没有向servlet传递当前页数,显示第一页
	  if (request.getParameter("pageCode")==null|| request.getParameter("pageCode")=="") {
		pageCode=1;
		
	}else {//不是第一次访问
		//不能超过总页数
		if (Integer.parseInt(request.getParameter("pageCode"))>totalPagecode) {
			pageCode=totalPagecode;
		}else {
			//小于等于总页数
			pageCode=Integer.parseInt(request.getParameter("pageCode"));
		}
		
	}
	  request.setAttribute("pageCode",pageCode);
	  List<ClassInfo> classlist=id.ClassServlet(pageSize,(Integer)request.getAttribute("pageCode"));
	  //List<ClassInfo> classlist1=ci.ClassServlet();
	  request.setAttribute("totalPagecode",totalPagecode);
	 
	  request.setAttribute("classlist",classlist);
	  //request.getSession().setAttribute("classlist", classlist1);
	 // response.sendRedirect("Showclass.jsp");
	  //转发
	  request.getRequestDispatcher("Showclass.jsp").forward(request, response);
	}
}

4.显示数据

<table>
<td><a  href="ClassServlet?pageCode=1">首页</a></td>
<c:if test="${pageCode==1}" var="flag"></c:if>
<c:if test="${flag}">
<td><a href="ClassServlet?pageCode=1">上一页</a></td>
</c:if>

<c:if test="${flag}">
<td><a href="ClassServlet?pageCode=${pageCode-1}">上一页</a></td>

</c:if>
<td>当前第${pageCode}</td>
<td><a href="ClassServlet?pageCode=${pageCode+1}">下一页</a></td>
<td>总共${totalPagecode}</td>
<td><a href="ClassServlet?pageCode=${totalPagecode}">尾页</a></td>
</tr>
</table>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜小姐-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值