javaweb分页原理详解

 更新时间:2017年04月08日 14:06:39   作者:第九种格调的人生  
这篇文章主要为大家详细介绍了javaweb分页的原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了javaweb分页原理的具体实现代码,供大家参考,具体内容如下

public class Page {
 private int currentPage;
 private int totalPage;
 private int count;
 private int PageSize;
 private List<Product> list;
 private String category;
 
 } 

servlet:

package com.learning.web.servlet;

import java.io.IOException;
import java.util.List;

import javax.enterprise.inject.New;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.learning.domain.Page;
import com.learning.domain.Product;
import com.learning.service.ProductService;


@WebServlet("/showProductByPage")
public class ShowProductByPage extends HttpServlet {
 private static final long serialVersionUID = 1L;
 
 
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  int currentPage=1;
  int pageSize=4;
  //第一次取为空
  String currentPageString=request.getParameter("currentPage");
  if (currentPageString!=null) {
  currentPage=Integer.parseInt(currentPageString);
  }
  String category = request.getParameter("category");
  if ("".equals(category)) {
  category=null;
  } 
  ProductService productService=new ProductService();
  Page page=productService.showProductByPage(currentPage,pageSize,category);
  request.setAttribute("page", page);
  request.getRequestDispatcher("/product_list.jsp").forward(request, response);
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doGet(request, response);
 }

}

service:

public Page showProductByPage(int currentPage, int pageSize, String category) {
 try {
  Page page=new Page();
  int count=productDao.count(category);
  page.setCount(count);
  page.setList(productDao.findProductsByPage(currentPage,pageSize,category));
  int totalPage=(int) Math.ceil(1.0*count/pageSize);
  page.setPageSize(pageSize);
  page.setCurrentPage(currentPage);
  page.setTotalPage(totalPage);
  page.setCategory(category);
  return page;
 } catch (SQLException e) {
  e.printStackTrace();
 }
 return null;
 }

Dao:

 public int count(String category) throws SQLException {
 QueryRunner queryRunner=new QueryRunner(C3P0Util.getDataSource());
 String sql=" select count(*) from products ";
 if (category!=null) {
  sql+=" where category='"+category+"'";
 }
 long l= (Long)queryRunner.query(sql, new ScalarHandler(1));
 return (int) l;
 }



 public List<Product> findProductsByPage(int currentPage, int pageSize, String category) throws SQLException {
 QueryRunner queryRunner=new QueryRunner(C3P0Util.getDataSource());
 String sql=" select * from products ";
 if (category!=null) {
  sql+=" where category='"+category+"'";
 }
 sql+=" limit ?,?";
 return queryRunner.query(sql, new BeanListHandler<Product>(Product.class),(currentPage-1)*pageSize,pageSize);
 }


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java从控制台接受输入字符的简单方法

    Java从控制台接受输入字符的简单方法

    这篇文章主要介绍了Java从控制台接受输入字符的简单方法,需要的朋友可以参考下
    2014-02-02
  • java实现双色球彩票游戏

    java实现双色球彩票游戏

    这篇文章主要为大家详细介绍了java实现双色球彩票游戏,超级简单的逻辑,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Redis介绍和使用场景详解

    Redis介绍和使用场景详解

    这篇文章主要为大家详细介绍了Redis介绍和使用场景,需要的朋友可以参考,具体内容如下
    2018-04-04
  • Java设置Access-Control-Allow-Origin允许多域名访问的实现方法

    Java设置Access-Control-Allow-Origin允许多域名访问的实现方法

    这篇文章主要介绍了Java设置Access-Control-Allow-Origin允许多域名访问的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • PowerJob的GridFsManager工作流程源码解读

    PowerJob的GridFsManager工作流程源码解读

    这篇文章主要为大家介绍了PowerJob的GridFsManager工作流程源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • IntelliJ IDEA 安装教程2019.09.23(最新版)

    IntelliJ IDEA 安装教程2019.09.23(最新版)

    本文通过图文并茂的形式给大家介绍了IntelliJ IDEA 安装教程2019.09.23最新版,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Java 基于雪花算法生成分布式id

    Java 基于雪花算法生成分布式id

    SnowFlake 算法(雪花算法), 是Twitter开源的分布式id生成算法。其核心思想就是: 使用一个64 bit的long型的数字作为全局唯一id。本文讲述Java 基于雪花算法生成分布式id的方法
    2021-06-06
  • 关于springboot 配置文件中属性变量引用方式@@解析

    关于springboot 配置文件中属性变量引用方式@@解析

    这篇文章主要介绍了关于springboot 配置文件中属性变量引用方式@@解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • MyBatis参数处理实现方法汇总

    MyBatis参数处理实现方法汇总

    这篇文章主要介绍了MyBatis参数处理实现方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java基础知识总结之继承

    Java基础知识总结之继承

    这一篇我们来学习面向对象的第二个特征——继承,文中有非常详细的基础知识总结,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06

最新评论