javaWeb实现分页
来源:互联网 发布:北风网大数据 编辑:程序博客网 时间:2024/05/21 17:47
本博客主要实现jsp页面的分页功能。在数据库拥有上千条数据或者更多的时候,一个简单的SQL语句:SELECT * FROM user 是不行的,一个页面不仅不能够显示这么多页面,即使能够显示也不能这么做,在一个就是全部搜索是非常消耗数据库的性能,影响用户的体验。解决方法就是使用:select * from user limit ?,?语句。
分页思路:
1.创建bean包
(1)创建user实体类。
(2)创建page类
private int pageOfUser=3;//页面大小,初始化为3 private int totalPage;//页面总数,计算得到 private int pageNumber=1;//当前页码,初始化为1 private List<User> list;//记录条件搜索的list private int count;//记录总数,在servlet类中获取
2.创建dao包
(1)创建ConnectionJDBC类,实现数据库驱动加载,连接,返回连接对象Connection
(2)创建SelectAll类,使用SELECT * FROM UsersInformation语句返回总数。
(3)创建ShowLimit类,实现条件查找,返回list
3.创建service包
创建Show类,实现dao层方法。
4.创建servlet包
创建ShowUsers包,实现分页逻辑。
5.创建show.jsp
代码如下:
User.java
package com.ysu.bean;public class User { private String name; private String password; private String email; private int id; private String mark; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMark() { return mark; } public void setMark(String mark) { this.mark = mark; }}
Pages.java
package com.ysu.bean;import java.util.List;public class Pages { private int pageOfUser=3;//页面大小,初始化为3 private int totalPage;//页面总数 private int pageNumber=1;//当前页码,初始化为1 private int indexPage;//分页开始的索引 private List<User> list;//记录条件搜索的list private int count;//记录总数 private int isSeek=0;//0为不索引,1为索引 public int getPageOfUser() { return pageOfUser; } public void setPageOfUser(int pageOfUser) { this.pageOfUser = pageOfUser; } public void setCount(int count) { this.count = count; if(count%pageOfUser==0){ this.totalPage=this.count/this.pageOfUser; }else{ this.totalPage=this.count/this.pageOfUser+1; } } public int getTotalPage() { return totalPage; } public int getIndexPage() { return indexPage; } public void setIndexPage(int indexPage) { this.indexPage = indexPage; } public List<User> getList() { return list; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public void setList(List<User> list) { this.list = list; } public int getCount() { return count; } public int getPageNumber() { return pageNumber; } public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } }
ConnectionJDBC.java
package com.ysu.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class ConnectionJDBC { public static Connection getConn(){ Connection conn=null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } String url="jdbc:mysql://localhost:3306/UserRegister?user=root&password=1234&useUnicode=true&characterEncoding=utf-8"; try { conn=DriverManager.getConnection(url); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; }}
SelectAll.java
package com.ysu.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.ysu.bean.User;public class SelectAll { public List<User> getAllUser(){ List<User>list=new ArrayList<User>(); Connection conn=null; PreparedStatement p=null; ResultSet rs=null; conn=ConnectionJDBC.getConn(); String sql="SELECT * FROM UsersInformation"; try { p=conn.prepareStatement(sql); rs=p.executeQuery(); while(rs.next()){ User user=new User(); user.setEmail(rs.getString(4)); user.setId(rs.getInt(1)); user.setName(rs.getString(2)); user.setPassword(rs.getString(3)); user.setMark(rs.getString(5)); list.add(user); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } public int getUserCount(){ int num=0; Connection conn=null; PreparedStatement p=null; ResultSet rs=null; conn=ConnectionJDBC.getConn(); String sql="SELECT count(*) FROM UsersInformation"; try { p=conn.prepareStatement(sql); rs=p.executeQuery(); while(rs.next()){ num=rs.getInt(1); } conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return num; }}
ShowLimit.java
package com.ysu.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.ysu.bean.Pages;import com.ysu.bean.User;public class ShowLimit { public List<User> showlimit(Pages page){ List<User> list=new ArrayList<User>(); Connection conn=null; PreparedStatement p=null; ResultSet rs=null; conn=ConnectionJDBC.getConn(); String sql="SELECT * FROM UsersInformation LIMIT ?,?"; try { p=conn.prepareStatement(sql); p.setInt(1, (page.getPageNumber()-1)*3); p.setInt(2, page.getPageOfUser()); rs=p.executeQuery(); while(rs.next()){ User user=new User(); user.setId(rs.getInt(1)); user.setName(rs.getString(2)); user.setPassword(rs.getString(3)); user.setEmail(rs.getString(4)); user.setMark(rs.getString(5)); list.add(user); } conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } page.setList(list); return list; }}
Show.java
package com.ysu.servic;import java.util.List;import com.ysu.bean.Pages;import com.ysu.bean.User;import com.ysu.dao.Login;import com.ysu.dao.SelectAll;import com.ysu.dao.SelectById;import com.ysu.dao.ShowLimit;public class Show { //登录 public boolean getLogin(String name,String password){ Login log=new Login(); return log.logins(name, password); } //查找所有 public List<User> showUsers(){ return new SelectAll().getAllUser(); } //部分显示 public List<User> showLimit(Pages page){ ShowLimit showlimit=new ShowLimit(); return showlimit.showlimit(page); } //按ID查找 public User getById(int id){ return new SelectById().getUser(id); } //得到总数 public int getCount(){ return new SelectAll().getUserCount(); }}
ShowUsers.java
package com.ysu.servlets;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;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.ysu.bean.Pages;import com.ysu.bean.User;import com.ysu.servic.Show;/** * Servlet implementation class ShowUsers */@WebServlet("/ShowUsers")public class ShowUsers extends HttpServlet { private static final long serialVersionUID = 1L; Pages page=new Pages(); Show s=new Show(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String key=request.getParameter("key"); if(key.equals("page")){ String ID=request.getParameter("pageNum"); int id=Integer.parseInt(ID); if(id<1){ page.setPageNumber(1); }else if(id>page.getTotalPage()){ page.setPageNumber(page.getTotalPage()); }else{ page.setPageNumber(id); } page.setCount(s.getCount());//初始化总条数 page.setList(s.showLimit(page)); request.setAttribute("page", page); request.getRequestDispatcher("/show.jsp").forward(request, response); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}
show.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!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>用户信息展示界面</title> </head> <body> <table border="1"> <thead> <tr> <td>ID</td> <td>用户名</td> <td>密码</td> <td>电子邮箱</td> <td>备注</td> </tr> </thead> <tbody> <c:forEach items="${page.list }" var="user"> <tr> <td>${user.id }</td> <td>${user.name }</td> <td>${user.password }</td> <td>${user.email }</td> <td>${user.mark }</td> </tr> </c:forEach> <tr> </tr> </tbody> </table> <a href="http://localhost:8080/showUsers/ShowUsers?key=page&pageNum=1">首页</a> <a href="http://localhost:8080/showUsers/ShowUsers?key=page&pageNum=${page.pageNumber-1 }">上一页</a> <c:choose> <c:when test="${page.pageNumber <= 3}"> <c:set var="begins" value="1"></c:set> <c:set var="ends" value="5"></c:set> </c:when> <c:otherwise> <c:set var="begins" value="${page.pageNumber-2}"></c:set> <c:set var="ends" value="${page.pageNumber+2}"></c:set> <c:if test="${ends > page.totalPage }"> <c:set var="ends" value="${page.totalPage}"></c:set> <c:set var="begins" value="${page.pageNumber-4}"></c:set> </c:if> </c:otherwise> </c:choose> <c:forEach var="i" begin="${begins }" end="${ends }"> <c:choose> <c:when test="${page.pageNumber==i}"> 【${page.pageNumber }】 </c:when> <c:otherwise> <a href="http://localhost:8080/showUsers/ShowUsers?key=page&pageNum=${i }">[${i }]</a> </c:otherwise> </c:choose> </c:forEach> <a href="http://localhost:8080/showUsers/ShowUsers?key=page&pageNum=${page.pageNumber+1 }">下一页</a> <a href="http://localhost:8080/showUsers/ShowUsers?key=page&pageNum=${page.totalPage }">末页</a> 共${page.totalPage }页 共有${page.count }条记录 </body></html>
阅读全文
0 0
- javaweb 分页的实现
- javaWeb 分页实现
- javaweb 实现分页
- Javaweb分页技术实现
- javaweb 分页实现
- javaWeb实现分页
- javaweb mysql实现分页功能
- java--javaWeb分页的实现
- JavaWeb 分页查询的实现
- JavaWeb无框架实现分页
- javaweb基本的分页功能实现
- 学习总结之JavaWeb实现分页
- 详谈javaWeb分页的实现(模拟百度分页)
- JavaWeb 分页
- javaweb分页
- javaweb 分页
- Javaweb中结合mysql数据库实现分页功能
- 求 javaweb 条件分页
- 最大熵学习笔记(二)最大熵原理
- 为什么要使用BIOS?
- 导出vertica数据库表结构
- java内部类 学习笔记
- DEFAULT_THREAD_STACKSIZE影响其它任务运行
- javaWeb实现分页
- fastjson 使用方法
- [iOS]应用内支付(内购)的个人开发过程及坑!
- Android 图片轮播效果,RollViewPager的简单使用
- Android应用层(网络编程)二(HttpClient、HttpURLConnection)
- mysql 查询结果 自定义列名
- zigbee 节点退出网络 NLME_LeaveReq()
- Android Studio将library手动打成jar包
- UE4 VR 瞬移 Teleport 一