0

0

jsp+servlet+javabean实现数据分页方法完整实例

高洛峰

高洛峰

发布时间:2016-12-29 15:25:48

|

2022人浏览过

|

来源于php中文网

原创

本文实例讲述了jsp+servlet+javabean实现数据分页方法。分享给大家供大家参考,具体如下:

这里秉着且行且记的心态,记录下学习过程,学得快忘得快,生怕遗忘,以备日后使用。
用到的部分代码是自己在网上查找,并自己修改,加上自己的理解。也不知道算不算原创,只做自己学习记录。

使用相关:PostgreSQL数据库、dom4j、JSP、Servlet

一、首先是工程格局,来个全局视图方便读者与自己查看与使用

201692885042490.jpg

立即学习Java免费学习笔记(深入)”;

思路为:

以config.xml文件记录配置信息,以方便数据库更改,方便移植与重用。
DOM4JUtil.java用于解析xml属性文件以获得需要数据
PostgreSQL_Util.java分装数据连接与数据库操作
PageProperties.java为表格分页属性javaBean
PageProperties.java封装分页操作
Page.java为分页主要操作
tablePage.jsp为效果显示界面

用到的第三方jar包:

dom4j-1.6.1.jar用于xml文件解析
postgresql-9.3-1101.jdbc4.jar用于JDBC连接postgreSQL数据库

分页效果如下:能通过点击上页下页实现翻页,输入指定页面跳转(超出范围跳转到第1或最后页)。具体实现请参见详细代码,我都贴上来了。小菜鸟一名,处于正在学习阶段,有大神能指点下当然更好,希望不吝赐教!

201692885042490.jpg

二、具体代码实现

迷你天猫商城
迷你天猫商城

迷你天猫商城是一个基于Spring Boot的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为迷你天猫商城的核心组成部分之一,天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。所有页面均兼容IE10及以上现代浏览器。部署方式1、项目

下载

1、config.xml数据库连接信息属性文件



 
 
 
 
]>

 org.postgresql.Driver
 jdbc:postgresql://localhost:5432/java
 admin
 k42jc

2、DOM4JUtil.java

package util;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/** 
 * 用于解析xml属性文件 
 * @author JohsonMuler 
 * 
 */
public class DOM4JUtil {
 private static Element root=null;
 static{//静态代码块
  //创建解析对象
  SAXReader sr=new SAXReader();
  //获取当前工程路径
//  String url=System.getProperty("user.dir");
  String url=DOM4JUtil.class.getResource("").getPath();
//  System.out.println(url);
  try {
   //通过文件路径获取配置文件信息
   Document doc=sr.read(url+"config.xml");
   //获取根节点
   root=doc.getRootElement();
  } catch (DocumentException e) {
   e.printStackTrace();
  }
 }
 public static String getPostgresData(String str){
  //以根节点为基础,获取配置文件数据
  Element e=root.element(str);
  String data=e.getText();
  return data;
 }
 public static void main(String[] args) {
//  String url=DOM4JUtil.class.getResource("..").getPath();
//  System.out.println(System.getProperty("user.dir"));
//  System.out.println(url);
  String driver=getPostgresData("driver");
  String url=getPostgresData("url");
  System.out.println(driver);
  System.out.println(url);
 }
}

3、PostgreSQL_Util.java

package util;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
public class PostgreSQL_Util {
 private static DOM4JUtil dom=new DOM4JUtil();
 private static Connection c=null;
 private static ResultSet rs=null;
 private static String driver=dom.getPostgresData("driver");
 private static String url=dom.getPostgresData("url");
 private static String username=dom.getPostgresData("username");
 private static String pwd=dom.getPostgresData("pwd");
 public PostgreSQL_Util(){
  try {
   Class.forName(driver);
   c=DriverManager.getConnection(url);
  } catch (ClassNotFoundException e) {
   System.out.println("未找到指定类:"+e.getMessage());
  } catch (SQLException e) {
   System.out.println("获取连接异常:"+e.getMessage());
  }
 }
 /**
  * 数据查询方法(Statement)
  * @param sql
  * @return
  * @throws SQLException
  */
 public ResultSet executeQuery(String sql) throws SQLException{
  Statement s=c.createStatement();
  rs=s.executeQuery(sql);
  return rs;
 }
 /**
  * 重载方法(PreparedStatement)
  * @param sql
  * @param list
  * @return
  * @throws SQLException
  */
 public ResultSet executeQuery(String sql,List list) throws SQLException{
  PreparedStatement ps=c.prepareStatement(sql);
  for(int i=0;i list) throws SQLException{
  PreparedStatement ps=c.prepareStatement(sql);
  for(int i=0;i

4、PageProperties.java

package bean;
import java.sql.ResultSet;
public class PageProperties {
 private int currentPage;//当前页号
 private int totalPages;//总页数
 private int totalRecords;//总数据条数
 private ResultSet rs;//动态结果集
 public PageProperties() {
  super();
 }
 public PageProperties(int currentPage, int totalPages, int totalRecords, 
   ResultSet rs) {
  super();
  this.currentPage = currentPage;
  this.totalPages = totalPages;
  this.totalRecords = totalRecords;
  this.rs = rs;
 }
 public int getCurrentPage() {
  return currentPage;
 }
 public void setCurrentPage(int currentPage) {
  this.currentPage = currentPage;
 }
 public int getTotalPages() {
  return totalPages;
 }
 public void setTotalPages(int totalPages) {
  this.totalPages = totalPages;
 }
 public int getTotalRecords() {
  return totalRecords;
 }
 public void setTotalRecords(int totalRecords) {
  this.totalRecords = totalRecords;
 }
 public ResultSet getRs() {
  return rs;
 }
 public void setRs(ResultSet rs) {
  this.rs = rs;
 }
}

5、TablePage.java

package bean;
import java.sql.ResultSet;
public class PageProperties {
 private int currentPage;//当前页号
 private int totalPages;//总页数
 private int totalRecords;//总数据条数
 private ResultSet rs;//动态结果集
 public PageProperties() {
  super();
 }
 public PageProperties(int currentPage, int totalPages, int totalRecords, 
   ResultSet rs) {
  super();
  this.currentPage = currentPage;
  this.totalPages = totalPages;
  this.totalRecords = totalRecords;
  this.rs = rs;
 } 
 public int getCurrentPage() {
  return currentPage;
 }
 public void setCurrentPage(int currentPage) {
  this.currentPage = currentPage;
 }
 public int getTotalPages() {
  return totalPages;
 }
 public void setTotalPages(int totalPages) {
  this.totalPages = totalPages;
 }
 public int getTotalRecords() {
  return totalRecords;
 }
 public void setTotalRecords(int totalRecords) {
  this.totalRecords = totalRecords;
 }
 public ResultSet getRs() {
  return rs;
 }
 public void setRs(ResultSet rs) {
  this.rs = rs;
 }
}

6、Page.java这是主要处理类,Servlet

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import util.PostgreSQL_Util;
import bean.PageProperties;
import bean.TablePage;
public class Page extends HttpServlet {
 public void service(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  request.setCharacterEncoding("utf-8");
  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();
  /**
   * 通过TablePage设置分页属性
   *
   */
  TablePage tb=new TablePage();
  //获取当前表格显示的页码
  int currentPage=tb.currentPage(tb.getStrPage(request, "page"));
  System.out.println(currentPage);
  //设置每页显示数据条数
  tb.setPageRecord(10);//设置每页显示10条数据
  /**
   * 通过xxSQL_Util设置JDBC连接及数据处理
   */
  PostgreSQL_Util postgres=new PostgreSQL_Util();
  try {
   ResultSet rs_count=postgres.executeQuery("select count(*) as c from student");
   rs_count.next();
   //获得总的数据条数
   int totalRecords=rs_count.getInt("c");
   //根据数据表的总数据条数获取页面显示表格的总页数
   int totalPages=tb.getTotalPages(totalRecords);
   if(currentPage>totalPages){
    currentPage=totalPages;//保证最后一页不超出范围
   }
   //根据数据库表信息和当前页面信息获得动态结果集
   ResultSet rs=tb.getPageResultSet(postgres.executeQuery("select * from student"), currentPage);
   /** 
    * 将数据加入javaBean
    */
   PageProperties pp=new PageProperties(currentPage, totalPages, totalRecords, rs);
   /** 
    * 将javaBean转发至前端 
    */
   request.setAttribute("result", pp);
   request.getRequestDispatcher("tablePage.jsp").forward(request, response);
  } catch (SQLException e) {
   System.out.println("Class Page:"+e.getMessage());
//   e.printStackTrace();
  }
 }
}

7、tablePage.jsp前台显示效果

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="bean.PageProperties"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


 
 简单数据分页
 
 
 
 
 
 
 
 
 
  <%
   PageProperties pp=(PageProperties)request.getAttribute("result"); 
   ResultSet rs=pp.getRs();
  %>
  <%
   int i=1;
   while(rs.next()){
   %>
  
  <%
   i++;
   if(i>10)
    break;
  }
   %>
   
<%=pp.getTotalPages() %>页共<%=pp.getTotalRecords() %>条数据本页<%=i-1 %>条第<%=pp.getCurrentPage() %>页

<% if ( pp.getCurrentPage() > 1 ) { %><<上一页 <% } %> <% if ( pp.getCurrentPage() < pp.getTotalPages() ) { %>下一页>> <% } %>

姓名 性别 年龄 分数
<%=rs.getObject(1) %> <%=rs.getObject(2) %> <%=rs.getObject(3) %> <%=rs.getObject(4) %>

初步看,感觉后台代码实在是繁琐,但这是考虑到程序健壮性与可移植性,方便代码重用。以后要用,根据自己的需要在属性文件(config.xml)中配置相关JDBC驱动,在jsp页面通过request获得后台Servlet(Page.jsp)的转发结果("result"),结合页面属性(PageProperties.java类)即可实现效果。

当然,这也是因为个人学习,倾向于多用点东西。

希望本文所述对大家jsp程序设计有所帮助。

更多jsp+servlet+javabean实现数据分页方法完整实例相关文章请关注PHP中文网!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

0

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

20

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

62

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号