分页
分页可以简单的理解为是你在搜索百度一样:
其实我们仔细想想就能知道,分页无非就是变量的传递或者说是数据的实时变动(也可以说是更新/就像是1+1=2),现在就在分析是哪些变量:
1、pageMax —— 总页面数量(具体要看数据库有多少数据决定的)
2、pageSize —— 每个页面最多可以展示的数量(就是给他一个上限,不然数据太多也不好看)
3、pageIndex —— 当前页码,是从前端获取的(代表的是你切换到了第几页,不懂上面图片有框框标记)
4、start —— 每页开始的条数
5、end —— 每页结束的条数 (结合上面的变量start,就是从多少条开始再到多少条结束;例如1-9,页面数据从1条开始到第9条结束)
页码 | 开始条数 | 结束条数 |
---|---|---|
1 | 1 =(1-1)* pagSize + 1 | 5=1*5 |
2 | 6 = (2-1)* pagSize + 1 | 5=2*5 |
3 | 11 = (3-1)* pagSize + 1 | 5=3*5 |
4 | 16 = (4-1)* pagSize + 1 | 5=4*5 |
推算即可,由此知道了
start = (pageIndex-1) * pageSize + 1
end = (pageIndex) * pageSize
1、用户点击了下一页进行了切换,程序会跳转到 你写好数据处理页面
2、在用户点击切换页面的时候对数据的接收,然后处理添加到request作用域中,使得前端页面可以再次接收新的数据,做出对应的更换
public class LoadDataServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
int i;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
// 配置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
// 获取内置对象
PrintWriter out = resp.getWriter();
HttpSession session = req.getSession();
// 设置页码变量,表示当前页码
int pageIndex = 1;
// 不是空数据
if (req.getParameter("pageIndex") != null) {
// 将前端实时点击改变的页码接受
pageIndex = Integer.parseInt(req.getParameter("pageIndex"));
}
// 获取模糊查询的数据
String str = req.getParameter("str");
if (str == null) {
str = "";
}
// 将要绑定到界面的数据保存在request里面
List<News> list = new NewsDao().queryIndex(pageIndex,str);
req.setAttribute("list", list);
// 将页码保存在request,前端调用
req.setAttribute("pageIndex", pageIndex);
// 将模糊查询数据保存在request作用域
req.setAttribute("str", str);
//保存在request里面的数据要使用转发在能进行调用
req.getRequestDispatcher("/admin/admin.jsp").forward(req, resp);;
} catch (Exception e) {
e.printStackTrace();
}
}
}