jsp页面数据分页模仿百度分页效果

<%@page import="web09.shop.DBUtil"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>数据分页</title>
    <style type="text/css">
        .page a{
            min-width: 34px;
            height: 34px;
            border: 1px solid #e1e2e3;
            cursor: pointer;
            display:block;
            float: left;
            text-decoration: none;
            text-align:center;
            line-height: 34px;
        }

        .page a:HOVER {
            background: #f2f8ff;
            border: 1px solid #38f ;
        }
        .page a.prev{
            width:50px;
        }
        .page span{
            width: 34px;
            height: 34px;
            border: 1px solid transparent;
            cursor: pointer;
            display:block;
            float: left;
            text-decoration: none;
            text-align:center;
            line-height: 34px;
            cursor: default;
        }
    </style>
</head>

<body>
<table class="tt" border="1" align="center" width="80%" cellpadding="10">
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>专业</th>
    </tr>
    <%
    DBUtil dbutil=new DBUtil();
    Connection conn=dbutil.getCon();
    //Connection conn = new DBUtil().getCon();
    PreparedStatement pstmt1 = conn.prepareStatement("select count(*) from student");
    ResultSet rs1 = pstmt1.executeQuery();
    rs1.next();
    int recordCount = rs1.getInt(1);     //记录总数
    int pageSize = 10;                    //每页记录数
    int start=1;                        //显示开始页
    int end=10;                            //显示结束页
    int pageCount = recordCount%pageSize==0 ? recordCount/pageSize : recordCount/pageSize+1;
    int currPage = request.getParameter("p")==null ? 1 : Integer.parseInt(request.getParameter("p"));

    currPage = currPage<1 ? 1 : currPage;
    currPage = currPage>pageCount ? pageCount : currPage;

    PreparedStatement pst = conn.prepareStatement("select * from student limit ?,?");
    pst.setInt(1,currPage*pageSize-pageSize);
    pst.setInt(2,pageSize);
    ResultSet rs = pst.executeQuery();

    while(rs.next()){
    %>
    <tr align="center">
    <td><%=rs.getInt(1) %></td>
    <td><%=rs.getString(2) %></td>
    <td><%=rs.getInt("age") %></td>
    <td><%=rs.getString(4) %></td>
    </tr>
    <%
    }
    %>
    <tr>
          <th colspan="4" class="page">
              <%
                  out.print(String.format("<a class=\"prev\" href=\"?p=%d\">首页</a>",1));
                  if(currPage>=7){
                      start=currPage-5;
                      end=currPage+4;
                  }
                  if(start>(pageCount-10)){
                      start=pageCount-9;
                  }
                  if(currPage>1){
                      out.print(String.format("<a class=\"prev\" href=\"?p=%d\">上一页</a>",currPage-1));
                  }

                  for(int i=start;i<=end;i++){
                      if(i>pageCount) break;
                      String pageinfo=String.format("<a href=\"?p=%d\">%d</a>",i,i);
                      if(i==currPage){
                          pageinfo=String.format("<span>%d</span>",i);
                      }
                      out.print(pageinfo);
                  }

                  if(currPage<=pageCount){
                      out.print(String.format("<a class=\"prev\" href=\"?p=%d\">下一页</a>",currPage+1));
                  }

                  out.print(String.format("<a class=\"prev\" href=\"?p=%d\">尾页</a>",pageCount));
              %>
          </th>
      </tr>
</table>
</body>
</html>请根据自己的项目、包名修改
时间: 2024-08-06 20:03:57

jsp页面数据分页模仿百度分页效果的相关文章

关于界面的按钮的显隐 还有jsp页面数据的传递 把页面的标签变成只读

//界面按钮的显示隐藏 界面input的锁定    function change(){       document.getElementById('first1').style.display="inline";       document.getElementById('first2').style.display="inline";       document.getElementById('first3').style.display="in

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

JSP页面数据展示:分组数据展示

一.描述: 页面上要展示的数据只要写好sql从数据库查出来即可,但是展示有时候不是太好处理.比如工作中遇到的这种情况:有一个问题处理的流程,其中需要选择下一处理人,这些处理人要以部门的形式分组展示,实现如下图所示的效果: 二.思路 因为是小项目,项目只使用了strut框架,数据库使用普通的JDBC通过C3P0连接数据库: a)首先按角色分组查询出所有用户,每个角色的用户存到List里面: b)然后把每组角色放到一个Map里面去,这样可以通过角色获取到对应角色用户的List: c)JSP页面上通过

详谈javaWeb分页的实现(模拟百度分页)

本文出自 http://blog.csdn.net/tjpu_lin/article/details/41050475 最近在开发一个项目,项目中有很多数据展示的模块,所以要用到分页,网上搜了很多分页的例子,但是很多实现的方法和自身的代码实例耦合度太高,导致直接拿来用根本不行. 于是自己只能亲自上阵了,关于分页实现大体逻辑是前台需要和后台相互传递页面参数(例如当前页面,页面大小,总共页数等),后台主要接受前台穿过来的pageNum(当前页码),进行数据查询,然后查完数据后返回给前台的同时也要将页

jsp页面 列表 展示 ajax异步实现

1. 服务端先返回页面基本结构(如message.jsp), <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ tag

画线-css实现JSP页面的线条

没有怎么接触过前端,在jsp页面画条线都这么难. css样式: .xline{border-bottom:solid 2px #7A378B; height:5px;} jsp页面: <div class="xline"></div> 效果: 就是在页面显示一条直线(是横的不是竖的),模块的可以作为分割线.

jsp页面通过ajax取值/展示数据及分页显示

jsp页面通过ajax从后台获取数据,在页面展示,并实现分页效果代码: [JavaScript部分代码] 1 <script> 2 function getComposition(pageno){ 3 4 //alert(pageno); 5 $.ajax( 6 { 7 url:'<%=basePath%>composition/compositionlist', 8 type:'post', 9 data:"pageno="+pageno, 10 succes

百度分页效果之纯jsp版

数据库连接工具类 package com.gao.page.utils; import java.sql.Connection; import java.sql.DriverManager; public class DatabaseConnection { /** *一个静态方法,返回一个数据库的连接. *这样达到了对数据库连接统一控制的目的. */ public static Connection getConnection() { Connection con=null; String c

java分页的实现(后台工具类和前台jsp页面)

1.首先,新建一个类Page.java 1 public class Page implements Serializable { 2 private static final long serialVersionUID = -3198048449643774660L; 3 private int pageNow = 1; // 当前页数 4 private int pageSize = 10; // 每页显示记录的条数 5 private int totalCount; // 总记录条数 6