`

JSP分页代码(最原始的分页思想)

阅读更多
<%@ page language="java" pageEncoding="GB2312"%>
<%@ page import="java.sql.*" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>仿BAIDU & GOOGLE 分页页码显示格式</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style>
<!--
body { .p { PADDING-LEFT:18px;
    FONT-SIZE: 14px;
    WORD-SPACING: 4px
}
}
-->
</style>
</head>

<body>
<div class="p">
<%
              int pagesize = 10;//每页显示记录数
                int liststep = 20;//最多显示分页页数
                int pages = 1;//默认显示第一页
                if (request.getParameter("pages") != null)  {
                    pages = Integer.parseInt(request.getParameter("pages"));//分页页码变量
                }
                //sql="select count(*) from table";//取出记录总数,把*换成记录名性能更加
                int count = 305;//假设取出记录总数
                int pagescount = (int) Math.ceil((double) count / pagesize);//求总页数,ceil(num)取整不小于num
                if (pagescount < pages)  {
                    pages = pagescount;//如果分页变量大总页数,则将分页变量设计为总页数
                }
                if (pages < 1)  {
                    pages = 1;//如果分页变量小于1,则将分页变量设为1
                }
                int listbegin = (pages - (int) Math.ceil((double) liststep / 2));//从第几页开始显示分页信息
                if (listbegin < 1)  {
                    listbegin = 1;
                }
                int listend = pages + liststep/2;//分页信息显示到第几页
                if (listend > pagescount)  {
                    listend = pagescount + 1;
                }

                //显示数据部分
                int recordbegin = (pages - 1) * pagesize;//起始记录
                int recordend = 0;
                recordend = recordbegin + pagesize;
                //最后一页记录显示处理
                if (pages == pagescount)  {
                    recordend = (int) (recordbegin + pagesize * (count % pagesize) * 0.1);
                }
              
            Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String strsql = "select top "+pagesize+ " * from    (select top "+recordbegin+" * from tables order by aml_id) aa    order by aml_id desc";
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        conn = DriverManager.getConnection("jdbc:microsoft:", "", "");
        pstmt = conn.prepareStatement(strsql);
        rs = pstmt.executeQuery();
        while(rs.next()){
                      response.getWriter().println("AML_ID: "+rs.getString(1)+" ");//显示取出的数据
                      response.getWriter().println("AML_ID: "+rs.getString(4)+"<br>");//显示取出的数据
        }
           
         
             //   for (int i = recordbegin; i < recordend; i++)  {
              //      response.getWriter().println("record " + i + "<br>");
              //  }

                //显示数据部分

                //<显示分页信息
                //<显示上一页
                if (pages > 1)  {
                    response.getWriter().println(
                    "<a href=?pages=" + (pages - 1) + ">上一页</a>");
                }//>显示上一页
                //<显示分页码
                for (int i = listbegin; i < listend; i++)  {
                    if (i != pages)  {//如果i不等于当前页
                        response.getWriter().println(
                        "<a href=?pages=" + i + ">[" + i + "]</a>");
                    } else  {
                        response.getWriter().println("[" + i + "]");
                    }
                }//显示分页码>
                //<显示下一页
                if (pages != pagescount)  {
                    response.getWriter().println(
                    "<a href=?pages=" + (pages + 1) + ">下一页</a>");
                }//>显示下一页
                //>显示分页信息
        rs.close();
        pstmt.close();
        conn.close();
            %>
</div>
</body>
</html>
分享到:
评论

相关推荐

    jsp jdbc分页原代码

    jsp jdbc分页原代码 是尚学堂提供的标准的分页代码,适合初学javaweb的学员使用.

    jsp分页标签JPage(HOT)

    本人写的jsp分页标签(JPage) JPage包括两种样式: 一种为原始的上一页下一页 一种样式类似百度 本人Email: jiaoer840214@163.com

    自定义标签写的分页代码

    原始写的分页,需要在jsp中写入脚本,不仅烦琐而且不能重用,自定义标签写的分页代码精简,而且可以实现最大化的重用

    【Java】无框架增删改查+登陆+分页+事务处理综合演示web应用

    这次是做一个不使用框架,用最原始的方法实现了java-jsp的web应用,栗子呢包含增删改查、登陆登出、分页、事务处理和权限管理这几个web应用的基本要素,界面就做得很烂了,除了对齐以外就没用到CSS了,也是节约时间...

    java范例开发大全源代码

     实例94 原始数组类型的String形式 121  实例95 Java合法标识符 122  实例96 显示一周各星期的名称 123  实例97 构造空心方框 124  实例98 这一天是星期几 125  实例99 大小写互换 127  实例100 ...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

    EXT教程EXT用大量的实例演示Ext实例

    5.2. 先看看最基本的三个例子 5.2.1. Ext.MessageBox.alert() 5.2.2. Ext.MessageBox.confirm() 5.2.3. Ext.MessageBox.prompt() 5.3. 如果你想的话,可以控制得更多 5.3.1. 可以输入多行的输入框 5.3.2. 再看...

    EXT2.0中文教程

    5.2. 先看看最基本的三个例子 5.2.1. Ext.MessageBox.alert() 5.2.2. Ext.MessageBox.confirm() 5.2.3. Ext.MessageBox.prompt() 5.3. 如果你想的话,可以控制得更多 5.3.1. 可以输入多行的输入框 5.3.2. 再看一个...

    GoodProject Maven Webapp.zip

    1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务. (主要用来访问数据库表) 2:...

    JAVA面试题最全集

    5.Java中的分页、效率考虑。 6.简单介绍您所了解的structs。 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一...

    最新Java面试宝典pdf版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    Java面试宝典2010版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 32、是否可以继承String类? 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 34、String 和StringBuffer的区别 35...

    Java面试笔试资料大全

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    java面试题大全(2012版)

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    JAVA面试宝典2010

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    Java面试宝典-经典

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    Java面试宝典2012版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer...

    java面试宝典2012

    这两行代码执行后,原始的String对象中的内容到底变了没有? 24 32、是否可以继承String类? 25 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 25 34、String 和StringBuffer的...

    Java面试宝典2012新版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

Global site tag (gtag.js) - Google Analytics