首先我们要理清楚分页我们都需要哪些数据,是否需要工作类
public class Page<T> {
// 当前页码
private int pageIndex;
// 每页数据量
private int pageSize = 5;
// 总页数
private int pageCount;
// 总数据量
private int total;
// 当前页数据
private List<T> results;
}
理清我们所有的数据之后,就要开始考虑前台我们需要的首页,尾页,上一页,下一页
<a href="#?pageIndex=1">首页</a>
<a href="#?pageIndex=<%=pageInfo.getPageIndex() - 1 < 1 ? 1 : pageInfo.getPageIndex() - 1%>">上一页</a>
<a href="#?pageIndex=<%=pageInfo.getPageIndex() + 1 > pageInfo.getPageCount() ? pageInfo.getPageCount() : pageInfo.getPageIndex() + 1%>">下一页</a>
<a href="#?pageIndex=<%=pageInfo.getPageCount()%>">尾页</a>
当前第<%=pageInfo.getPageIndex()%>页,总共<%=pageInfo.getPageCount()%>页
当我们确定好之后就要开始考虑遍历我们的东西
<%
Page<Student> pageInfo = (Page<Student>) request.getAttribute("page");
List<Student> stu = pageInfo.getResults();
%>
接收到之后我们就可以通过过JSTL进行遍历操作
后台代码
Servlet
/*
*正常接收
*/
Page<Student> page = studentService.getStudentByPage(Integer.parseInt(pageIndex), pageSize);
Service
@Override
public boolean updateStudent(String num, String phone, String address) {
int count = studentDao.updateStudent(num,phone,address);
if (count > 0) {
return true;
}
return false;
}
@Override
public Page<Student> getStudentByPage(int pageIndex, int pageSize) {
Page<Student> page = new Page<Student>();
//当前页
page.setPageIndex(pageIndex);
//每页数据量
page.setPageSize(pageSize);
//总数据量
int total = studentDao.countStudents();
page.setTotal(total);
//查询当前页数据
List<Student> results = studentDao.getStudentByPage(pageIndex,pageSize);
page.setResults(results);
return page;
}
Dao
@Override
public int countStudents() {
Connection conn = this.getConnection();
//查询到所有数据
String sql = "select count(*) from student";
PreparedStatement pstmt = null;
ResultSet rs = null;
int count = 0;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection(rs, pstmt, conn);
}
return count;
}
@Override
public List<Student> getStudentByPage(int pageIndex, int pageSize) {
Connection conn = this.getConnection();
String sql = "select * from student limit ?, ?";
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Student> list = new ArrayList<Student>();
Student sch = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, (pageIndex - 1) * pageSize);
pstmt.setInt(2, pageSize);
rs = pstmt.executeQuery();
while (rs.next()) {
sch = new Student();
sch.setNum(rs.getString("student_num"));
sch.setName(rs.getString("student_name"));
sch.setSex(rs.getString("student_sex"));
sch.setAge(rs.getInt("student_age"));
sch.setPhone(rs.getString("student_phone"));
sch.setAddress(rs.getString("student_address"));
sch.setClass1(rs.getString("student_class"));
sch.setRoom(rs.getString("student_room"));
list.add(sch);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection(rs, pstmt, conn);
}
return list;
}
如果还是看不懂 可以移步学生信息管理系统