实现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>