栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb:(九)分页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分页的基本原理就是通过一个当前页面变量pageNum来控制数据库要查询的数据,然后将查询到的数据进行显示即可。

pageNum维护在session中,每一次请求显示的页面需要基于当前的pageNum,显示上一页则pageNum = pageNum - 1,显示下一页则pageNum = pageNum + 1;pageNum需要一个默认初始值,这个默认初始值在访问首页的时候设置。

Servlet代码:

package servlet;

import impl.FruitDAOImpl;
import pojo.Fruit;
import util.JDBCUtils;
import util.StringUtils;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Connection;
import java.util.List;

@WebServlet("/index")
public class IndexServlet extends ViewBaseServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        // 默认初始化页数为第1页
        int pageNum = 1;

        HttpSession session = request.getSession();
        String keyword = null;

        //通过oper参数判断是不是在搜索框中进行关键词搜索显示
        String operStr = request.getParameter("oper");
        if(StringUtils.isNotEmpty(operStr) && "search".equals(operStr)){
            keyword = request.getParameter("keyword");
            //空置搜索框,则关键字置为"",与不输入关键字显示效果一致
            if (StringUtils.isEmpty(keyword)){
                keyword = "";
            }
            session.setAttribute("keyword", keyword);
        } else {
            String pageNumStr = request.getParameter("pageNum");
            if (StringUtils.isNotEmpty(pageNumStr)){
                pageNum = Integer.parseInt(pageNumStr);
            }
            //若关键字字段不为空,则说明当前页面基于关键字搜索而来,翻页的内容都基于搜索的结果进行显示
            Object keywordObj = session.getAttribute("keyword");
            if (keywordObj != null){
                keyword = (String) keywordObj;
            } else {
                keyword = "";
            }
        }

        //将pageNum存入session作用域,表示当前页面是第几页,其他request请求的页数基于当前页
        session.setAttribute("pageNum", pageNum);

        Connection connection = null;
        try {
            connection = JDBCUtils.getConnection();
            FruitDAOImpl fruitDAO = new FruitDAOImpl();
            List fruitList = fruitDAO.getPage(connection, pageNum, keyword);
            Long count = fruitDAO.getCount(connection, keyword);

            // 根据数据库记录条数计算最大页数,用于前端页面“尾页”按钮
            session.setAttribute("maxPage", (count + 4) / 5);
            session.setAttribute("fruitList", fruitList);

            super.processTemplate("index", request, response);

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            JDBCUtils.closeResource(connection, null);
        }
    }
}

HTML代码:


   
      
      
      
   
   
      

简易的水果管理系统

请输入查询关键字:
添加水果
名称 单价 数量 备注 操作
对不起,库存为空!
苹果 5 20 这里是备注
JavaWeb:(九)分页

JavaScript代码:

function delFruit(id){
    if(confirm("确定删除词条记录?")){
       window.location.href = "del.do? + id;
    }
}

function page(pageNum){
    window.location.href = "index?pageNum=" + pageNum;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号