您好,欢迎访问一九零五行业门户网

纯JSP分页代码之sqlserver2005/2008

昨天看到一篇《 纯jsp分页代码 》的文章,是用于mysql,稍微修改下,用于sqlserver2005/2008,没有异常处理。没有考虑性能等。 现将代码贴出,以供初学者参考: 注:邀月使用环境eclipse 3.4.2+tomcat 6.18+sqlserver2005 sp3调试成功。 页面pagelistdemo.js
昨天看到一篇《纯jsp分页代码》的文章,是用于mysql,稍微修改下,用于sqlserver2005/2008,没有异常处理。没有考虑性能等。
现将代码贴出,以供初学者参考:
注:邀月使用环境eclipse 3.4.2+tomcat 6.18+sqlserver2005 sp3调试成功。
页面pagelistdemo.jsp内容:
code
@ page language=java contenttype=text/html; charset=utf-8
    pageencoding=utf-8%>
//连接字符串
    string url = jdbc:sqlserver:// + globals.server
            + ;databasename= + globals.dbname;
    class.forname(globals.drivername).newinstance();
    connection connection = drivermanager.getconnection(url,
            globals.username, globals.pwd);
    statement statement = connection.createstatement();
//每页显示记录数
    int pagesize = 10;
    int startrow = 0; //开始显示记录的编号
    int pageno = 0;//需要显示的页数
    int counterstart = 0;//每页页码的初始值
    int counterend = 0;//显示页码的最大值
    int recordcount = 0;//总记录数;
    int maxpage = 0;//总页数
    int prevstart = 0;//前一页
    int nextpage = 0;//
    int lastrec = 0;
    int laststartrecord = 0;//最后一页开始显示记录的编号
//获取需要显示的页数,由用户提交
    if (request.getparameter(pageno) == null) { //如果为空,则表示第1页
        if (startrow == 0) {
            pageno = startrow + 1; //设定为1
        }
    } else {
        pageno = integer.parseint(request.getparameter(pageno)); //获得用户提交的页数
        startrow = (pageno - 1) * pagesize; //获得开始显示的记录编号
    }
//因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示
    //一定数量的页面链接
//设置显示页码的初始值!!
    if (pageno % pagesize == 0) {
        counterstart = pageno - (pagesize - 1);
    } else {
        counterstart = pageno - (pageno % pagesize) + 1;
    }
counterend = counterstart + (pagesize - 1);
%>
doctype html public -//w3c//dtd html 4.01 transitional//en http://www.w3.org/tr/html4/loose.dtd>
@page import=net.data.util.globals%>
@page import=java.sql.resultset%>
@page import=java.sql.drivermanager%>
@page import=java.sql.connection%>
@page import=java.sql.statement%>
element>
html>
head>
meta http-equiv=content-type content=text/html; charset=utf-8>
title>分页显示记录title>
link rel=stylesheet href=style.css type=text/css>
head>
//获取总记录数
    resultset rs = statement
            .executequery(select count(p_id) from product);
    rs.next();
    recordcount = rs.getint(1);
//取特定页数的数据
    string strcolumn =  p_id,p_name,loginid,modtime,p_singleintro ;
    string strtable =  product ;
    string strsort =   p_id desc ;
    string pkid = p_id;
    string strsql = ;
    string strwhere = ;
    string start_id = integer.tostring((pageno - 1) * pagesize + 1);
    string end_id = integer.tostring(pageno * pagesize);
    strsql =  select  + strcolumn
            +  from (select row_number() over(order by  + strsort
            + ) as rownum, + strcolumn +   from  + strtable
            +  with(nolock)  + strwhere
            + ) as d  where rownum between  + start_id +  and 
            + end_id +  order by  + strsort;
    rs = statement.executequery(strsql);
//获取总页数
    maxpage = recordcount % pagesize;
    if (recordcount % pagesize == 0) {
        maxpage = recordcount / pagesize;
    } else {
        maxpage = recordcount / pagesize + 1;
    }
%>
body class=usepagebg>
table width=100% border=0 class=internalheader>
    tr>
        td width=24%>font size=4>分页显示记录font>td>
        td width=76%>font size=4>总共 + recordcount + 条记录 - 当前页: + pageno + /
                    + maxpage%>font>td>
    tr>
table>
br>
table width=100% border=0 class=normaltabletwo>
    tr>
        td class=internalheader>记录序号td>
        td class=internalheader>数据标识号td>
        td class=internalheader>产品名称td>
        td class=internalheader>作者td>
        td class=internalheader>提交时间td>
        td class=internalheader>简介td>
    tr>
long i = 1;
        while (rs.next()) {
            long bil = i + (pageno - 1) * pagesize;
    %>
    tr>
        td class=normalfieldtwo>bil%>td>
        td class=normalfieldtwo>rs.getstring(1)%>td>
        td class=normalfieldtwo>rs.getstring(2)%>td>
        td class=normalfieldtwo>rs.getstring(3)%>td>
        td class=normalfieldtwo>rs.getstring(4)%>td>
        td class=normalfieldtwo>rs.getstring(5)%>td>
    tr>
i++;
        }
    %>
table>
br>
table width=100% border=0 class=internalheader>
    tr>
        td>
        div align=center>
out.print();
            //显示第一页或者前一页的链接
            //如果当前页不是第1页,则显示第一页和前一页的链接
            if (pageno != 1) {
                prevstart = pageno - 1;
                out.print(第一页 : );
                out.print( + prevstart
                        + >前一页);
            }
            out.print([);
//打印需要显示的页码
            for (int c = counterstart; c  counterend; c++) {
                if (c  maxpage) {
                    if (c == pageno) {
                        if (c % pagesize == 0) {
                            out.print(c);
                        } else {
                            out.print(c +  ,);
                        }
                    } else if (c % pagesize == 0) {
                        out.print( + c + > + c
                                + );
其它类似信息

推荐信息