JSP仿百度分页,谷歌分页页码处理

转载请勿删除此消息
本文出处: http://blog.csdn.net/tolys/archive/2007/10/06/1813197.aspx

 像百度一样的jsp分页效果,像goolge一样的分页效果!
 根据设定参数一次取一页记录内容显示

代码如下:

<% @ page language = " java "  pageEncoding = " GB2312 " %>
<%
    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);
               //  }
                  if (pages == pagescount && count % pagesize != 0) {//感谢shixiangkun在博客中提出问题
                       recordend = (int) (recordbegin + (count % pagesize) );
                  }
                 // Connection conn = null; // 要测试显示数据请自己链接数据库
                
// PreparedStatement stmt = null;
                
// String strSql = "select * from usertable limit recordbegin,pagesize"; // 取出分页记录,SQL因数据库而异!
                
// stmt = conn.prepareStatement(strSql);
                
// ResultSet rs = stmt.executeQuery();
                
// while(rs.next())){
                
//     response.getWriter().println(""+rs.getString("userId")+"<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>");
                }
// >显示下一页
                
// >显示分页信息
             %>
        
</ div >
    
</ body >
</ html >

你可能感兴趣的:(html,sql,jsp,数据库,百度,null)