前端JSP页面的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><table border="2" style="border-collapse: collapse" bordercolor="blue"width="88%" align="center"><tr><th>pid</th><th>商品图片</th><th>商品名称</th><th>市场价</th><th>商城价</th><th>商品描述</th></tr><c:forEach items="${pb.list }" var="p"><tr><td width="8%">${p.pid}</td><td width="8%"><img width="80px"src="${pageContext.request.contextPath}/${p.pimage}" /></td><td width="8%">${p.pname}</td><td width="8%">${p.market_price}</td><td width="8%">${p.shop_price}</td><td>${p.pdesc}</td></tr></c:forEach></table><center><c:if test="${pb.currPage!=1 }"><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=1">[首页]</a><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${pb.currPage-1}">[上一页]</a></c:if><!-- 1-10页码展示 --><!-- 如果总页数大于10页 --><c:if test="${pb.totalPage>10}"><!-- 如果当前页面大于等于(1)&&小于等于(6) --><c:if test="${(pb.currPage>=1)&&(pb.currPage<=6 )}"><c:forEach begin="1" end="10" var="n"><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${n}">${n}</a></c:forEach></c:if><!-- 如果当前数大于等于(总页数-4)&&小于等于(总页数) --><c:if test="${(pb.currPage>=(pb.totalPage-4))&&(pb.currPage<=pb.totalPage) }"><c:forEach begin="${ pb.totalPage-9}" end="${pb.totalPage }" var="n"><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${n}">${n}</a></c:forEach></c:if><!-- 如果当前数大于(6)&&小于总页数-4) --><c:if test="${(pb.currPage>6)&&(pb.currPage<(pb.totalPage-4))}"><c:forEach begin="${ pb.currPage-5}" end="${pb.currPage+4 }" var="n"><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${n}">${n}</a></c:forEach></c:if></c:if><!-- 如果总页数小于10页 --><c:if test="${pb.totalPage<=10 }"><c:forEach begin="1" end="${pb.totalPage }" var="n"><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${n}">${n}</a></c:forEach></c:if><c:if test="${pb.currPage!=pb.totalPage }"><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${pb.currPage+1}">[下一页]</a><a href="${pageContext.request.contextPath}/showProductsByPage?currPage=${pb.totalPage}">[尾页]</a></c:if>第${pb.currPage }页/共${pb.totalPage }页</center>
</body>
</html>

商品详情显示的代码:

首页 上一页的代码

每一页显示10条页码的代码:

下一页 尾页 第页/共页的代码:

分页效果显示:

后端的代码:

PageBean的代码:

package com.itheima.domain;import java.util.List;public class PageBean<T> {private List<T> list; // 当前页内容 查询private int currPage; // 当前页码 传递private int pageSize; // 每页显示的条数 固定private int totalCount; // 总条数 查询private int totalPage; // 总页数 计算public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}public int getCurrPage() {return currPage;}public void setCurrPage(int currPage) {this.currPage = currPage;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalCount() {return totalCount;}public void setTotalCount(int totalCount) {this.totalCount = totalCount;}public int getTotalPage() {return (int) Math.ceil(totalCount * 1.0 / pageSize);}public PageBean() {}public PageBean(List<T> list, int currPage, int pageSize, int totalCount) {super();this.list = list;this.currPage = currPage;this.pageSize = pageSize;this.totalCount = totalCount;}}

ShowProductsByPageServlet的代码:

package com.itheima.web.servlet;import java.io.IOException;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.itheima.domain.PageBean;
import com.itheima.domain.Product;
import com.itheima.service.ProductService;/*** 分页展示数据*/
public class ShowProductsByPageServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int currPage = Integer.parseInt(request.getParameter("currPage"));int pageSize = 3;PageBean<Product> bean = null;try {bean = new ProductService().showProductsByPage(currPage, pageSize);} catch (SQLException e) {e.printStackTrace();}request.setAttribute("pb", bean);request.getRequestDispatcher("/product_page.jsp").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

ProductService的代码:

 /*** 分页查询商品* @param currPage 第几页* @param pageSize 每页显示的条数* @return* @throws SQLException */public PageBean<Product> showProductsByPage(int currPage, int pageSize) throws SQLException {ProductDao dao=new ProductDao();List<Product> list=dao.findProductByPage(currPage,pageSize);int totalCount=dao.getCount();return new PageBean<>(list, currPage, pageSize, totalCount);}

ProductDao的代码:

 public List<Product> findProductByPage(int currPage, int pageSize) throws SQLException {QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());String sql="select * from product limit ?,?";return qr.query(sql, new BeanListHandler<>(Product.class),(currPage-1)*pageSize,pageSize);}public int getCount() throws SQLException {QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());String sql="select count(*) from product";return ((Long)qr.query(sql, new ScalarHandler<>())).intValue();}

JSP+Servlet技术实现分页 首页 下一页 每一页显示10条页码 下一页 尾页 第页/共页 (利用PageBean实现)相关推荐

  1. 使用JSP/Servlet技术开发新闻发布系统

               第一章:动态网页开发基础  动态网页:是指在 服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容 动态网页需要使用服务器端的脚本语言,例如 ...

  2. 吉首大学计算机科学与技术怎么样,吉首大学是几本 学生评价怎么样好不好(10条)...

    吉首大学是几本 学生评价怎么样好不好(10条) 考生之前的努力奋斗就是为了高考报志愿时有更多的底气和把握.而俗话说,三分考.七分报,有很多考生和家长都还不太了解大学的一本.二本.三本之分,本科高校只有 ...

  3. jsp+ajax+servlet+sqlserver实现分页查询_SXT DAY063 分页

    分页技术 分页意义和实现思路 分页的作用 数据量大,一页容不下 后台查询部分数据而不是全部数据 降低带宽使用,提高访问速度 • 分页的实现思路 MVC四个层次都需要参与分页操作 理解PageBean ...

  4. servlet mysql 分页_Java基础94 分页查询(以MySQL数据库为例,Servlet技术)

    1.概述 分页查询,也可叫做分批查询,基于数据库的分页语句(不同数据库是不同的). 本文使用的事MySql数据库. 假设:每页显示10条数据. Select * from contact  limit ...

  5. 【JSP教科书】JSP知识在线指南(记录知识JSP体系、EL表达式、JSTL标签库、JSP开发模型和分页查询)

    文章目录 @[toc] 一.JSP简介 1.1 什么是JSP? 1.2 JSP的特点 1.3 JSP为什么也是Servlet 1.4 tomact服务器中的资源分析 1.4.1 tomact服务器中的 ...

  6. 使用JSP/SERVLET实现在校学生管理系统

    项目编号: BS-GX-012 本系统基于JSP/SERVLET技术开发实现,前端采用easyui进行页面设计,用户交互性好,采用三层架构,MVC设计模式,数据库采用MYSQL数据库,开发工具为IDE ...

  7. jsp模糊查询_[内附完整源码和文档] 基于JSP+Servlet校园二手交易平台

    摘 要 本系统采用JSP/servlet技术,是使用Java编程语言编写的一套校园网二手交易平台软件.系统采用的是最近几年流行的B/S开发模式,以互联网方式运行,服务器端只需要安装本系统,而客户端用户 ...

  8. 用JSP/Servlet构建三层式管理信息系统

    摘要:本文介绍了一种开发基于Web的管理信息系统的实现框架.利用JSP/Servlet技术,结合MVC设计模式,使得开发过程更加灵活,更加易于维护. 关键词:管理信息系统,JSP,Servlet,MV ...

  9. 在线答疑系统源码java_java+jsp+servlet+mysql在线教学答疑系统

    需求分析 基于java+jsp+servlet+mysql技术, 实现一个在线教学答疑系统, 学生可以通过该网站提出问题留言,教师登录后可以进行答疑, 系统管理员可以对答疑系统进行管理 运行环境 ja ...

  10. java+jsp+servlet+mysql【网上预约挂号系统】(源码+论文+PPT+任务书+中期检查)

    系统功能 <1>浏览医院信息. <2>预约查询. <3>预约服务:已登录的用户可以选择适合自己的医生并预约就医时间. <4>管理员模块:对医生以及医生所 ...

最新文章

  1. C语言求:1到100之间的所有素数之和
  2. css4个伪元素,CSS_CSS3中的content属性使用示例,CSS中主要的伪元素有四个:befo - phpStudy...
  3. MongoDB 小试牛刀
  4. C++迭代器的使用和操作总结
  5. php 调取子栏目,Dedecms 如何调取某个栏目所在的顶级栏目及顶级下的子栏目
  6. ubuntu下的jdk进行升级_如何在ubuntu上更新jdk版本
  7. python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
  8. Atitit.分区对索引的影响 分区索引和全局索引 attilax总结
  9. 手机steam未能连接到服务器1004,steam与服务器连接失败
  10. C# 死循环等待方式
  11. win7系统中的消息队列服务器,高手分析win7系统安装消息队列的详细
  12. 第四章(1.2)机器学习——在web攻击检测中的应用实践
  13. Ubuntu 20.04 server 安装
  14. [收藏|转贴]货币金额大写转换库(C#)
  15. 均方根误差(RMSE),平均绝对误差(MAE),标准差(Standard Deviation);平均值、标准差、相关系数、回归线及最小二乘法
  16. 我的为人处事真的有问题吗?
  17. 几组数据的相关性python_几的解釋|几的意思|漢典“几”字的基本解釋
  18. 维特WT931——制作支持ROS的IMU惯性导航传感器
  19. wordpress 更改域名搬家全攻略(转)
  20. 吉林大学软件学院《软件项目管理》课程重点与测试题 第十一章 评审

热门文章

  1. Flutter tween动画
  2. 库卡c2机器人编程语言,有一篇文章知道库卡-C2机器人的内部结构
  3. vb打开服务器excel文件,vb打开、操作并且关闭EXCEL
  4. vue项目添加音乐播放插件
  5. 阿迪达斯智能运营中心在苏州工业园区开工建设;信达生物任命生物医药科学家刘勇军为集团总裁 | 美通企业日报...
  6. android第三方库适配鸿蒙,鸿蒙第三方适配rom
  7. 在keil中创立一个头文件
  8. php读取移动硬盘数据,什么是移动硬盘
  9. 联想Y40加装固态硬盘
  10. 如何提高服务器网站访问速度,如何有效提升网站打开速度?