📄 1006224.xml
字号:
<credit>100</credit>
<ReplyID>6487736</ReplyID>
<TopicID>1006224</TopicID>
<PostUserId>292582</PostUserId>
<PostUserName>jo_yoko</PostUserName>
<Point>20</Point>
<Content>给你一个分页显示的模板程序
<!--show_page.jsp-->
<%@ page import="java.lang.*" import="java.sql.*" import="java.util.*" contentType="text/html;charset=GB2312"%>
<%@ page import="tax.*"%>
<jsp:useBean id="RegisterBean" class="tax.RegisterBean" scope="page"/>
<jsp:useBean id="itemlist" class="tax.itemlist" scope="page"/>
<%
int PageSize = 10;//设置一页显示的记录数
int PageNum = 1;   //初始化页码=1
int PageNumCount = (136+PageSize-1) / PageSize;//记算总页数
//计算要显示的页码
String strPageNum = request.getParameter("page");//取得<href>提交的页码
if(strPageNum==null){                            //表明在QueryString中没有page这一个参数,此时显示第一页数据
PageNum = 1;
}
else{
PageNum = java.lang.Integer.parseInt(strPageNum);//将字符串转换成整型
if(PageNum<1) PageNum = 1;
}
if(PageNum>PageNumCount) PageNum = PageNumCount;//调整待显示的页码
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JSP例程 - 数据分页显示 -JDK1.2 </title>
</head>
<body>
<%
if(PageNumCount>0){
out.println(PageNum);//显示数据,此处只简单的显示页数
}
/*需要显示的数据,在此处显示
、、、
例如:
*/
//显示一个简单的表格
%>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<th>总数</th>
<th>页数</th>
</tr>
<tr>
<th><%=PageNumCount%></th>
<th><%=PageNum%></th>
</tr>
</table>
第<%=PageNum%>页  共<%=PageNumCount%>页  
<%if(PageNum<PageNumCount){%><a href="show_page.jsp?page=<%=PageNum+1%>">下一页</a><%}%> 
  <%if(PageNum>1){%><a href="show_page?page=<%=PageNum-1%>">上一页</a><%}%>
</body>
</html></Content>
<PostDateTime>2002-9-8 21:32:48</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>小唐蔡</PostUserNickName>
<rank>三级(初级)</rank>
<ranknum>user3</ranknum>
<credit>100</credit>
<ReplyID>6488186</ReplyID>
<TopicID>1006224</TopicID>
<PostUserId>246001</PostUserId>
<PostUserName>Tmsheng</PostUserName>
<Point>0</Point>
<Content>给你一个bean,按照文档说的用。也希望你给出修改意见。
package mshtang.html;
/**
 * <p>Title: DataBaseQuery</p>
 * <p>Description: 用于数据库翻页查询操作</p>
 * <p>Copyright: 厦门一方软件公司版权所有Copyright (c) 2002</p>
 * <p>Company: 厦门一方软件公司</p>
 * @author 小唐蔡
 * @version 1.0
 */
import java.sql.*;
import javax.servlet.http.*;
import java.util.*;
import mshtang.StringAction;
public class DataBaseQuery
{
  private HttpServletRequest request;
  private StringAction S;
  private String sql;
  private String userPara;
  private String[][] resultArray;
  private String[] columnNameArray;
  private String[] columnTypeArray;
  private int pageSize;
  private int columnCount;
  private int currentPageNum;
  private int currentPageRecordNum;
  private int totalPages;
  private int pageStartRecord;
  private int totalRecord;
  private static boolean initSuccessful;
  private String currentJSPPageName;
  private String displayMessage;
  public DataBaseQuery()
  {
    S = new StringAction();
    sql = "";
    pageSize = 10;
    totalRecord = 0;
    initSuccessful = false;
    currentJSPPageName = "";
    displayMessage = "";
    columnNameArray = null;
    columnTypeArray = null;
    currentPageRecordNum = 0;
    columnCount = 0;
  }
  /**功能:数据库初始化操作,其它操作的前提。
   *
   * @param conn:数据库连接;
   * @param request:jsp页面request对象;
   * @param querySQL:查询语句;
   * @param pageSize:每页显示记录数;
   * @param startPageNum:开始显示页码
   */
  public void init(Connection conn, HttpServletRequest request, String querySQL, int pageSize, int startPageNum)
  {
    if(conn != null)
    {
      this.request = request;
      this.sql = request.getParameter("querySQL");
      this.userPara = request.getParameter("userPara");
      if(sql == null || sql.equals(""))
      {
        sql = querySQL;
      }
      if(this.userPara == null)
      {
        this.userPara = "";
      }
      if(S.isContains(sql, "select;from", ";", true))
      {
        try
        {
          Statement st = conn.createStatement();
          ResultSet rs = st.executeQuery(sql);
          ResultSetMetaData rsmd = rs.getMetaData();
          columnCount = rsmd.getColumnCount();
          columnNameArray = new String[columnCount];
          columnTypeArray = new String[columnCount];
          String columnName;
          String value;
          while(rs.next())
          {
            totalRecord++;
            if(totalRecord == 1)
            {
              for(int i = 0; i < columnCount; i++)
              {
                columnNameArray[i] = rsmd.getColumnName(i + 1);
                columnTypeArray[i] = rsmd.getColumnTypeName(i + 1);
              }
            }
          }
          rs.close();
          //在总记录数大于0的情况下进行下列操作
          //获取链接图象
          if(totalRecord > 0 && pageSize > 0 && columnCount > 0 && startPageNum > 0)
          {
            //获取总页数
            totalPages = totalRecord / pageSize;
            int tempNum = totalRecord % pageSize;
            if(tempNum != 0)
            {
              totalPages++;
            }
            //获得当前页页码
            String currentPage = request.getParameter("currentPageNum");
            currentPageNum = (currentPage == null || currentPage.equals(""))? startPageNum:Integer.parseInt(currentPage);
            currentPageNum = (currentPageNum > totalPages)?totalPages:currentPageNum;
            currentPageNum = (currentPageNum <= 0)?1:currentPageNum;
            //获得当前页起始显示记录数
            pageStartRecord = (currentPageNum - 1) * pageSize + 1;
            pageStartRecord = (pageStartRecord <= 0)?1:pageStartRecord;
            pageStartRecord = (pageStartRecord > totalRecord)?totalRecord:pageStartRecord;
            //获得当前页显示记录数
            if(currentPageNum * pageSize > totalRecord)
            {
              currentPageRecordNum = totalRecord - (currentPageNum - 1) * pageSize;
            }
            else
            {
              currentPageRecordNum = pageSize;
            }
            resultArray = new String[currentPageRecordNum][columnCount];
            //用于跳过前面不需显示的记录
            int continueRowNum = 0;
            //用于跳过后面不再显示的记录
            int breakRowNum = 0;
            ResultSet rs2 = st.executeQuery(sql);
            while(rs2.next())
            {
              //跳过前面不需显示的记录
              continueRowNum++;
              if(continueRowNum < pageStartRecord)
              {
                continue;
              }
              //存取当前页需显示的记录到二维数组
              for(int i = 0; i < columnCount; i++)
              {
                value = rs2.getString(columnNameArray[i]);
                value = (value == null)?"":value.trim();
                resultArray[breakRowNum][i] = value;
              }
              //跳过后面不再显示的记录
              breakRowNum++;
              if(breakRowNum >= currentPageRecordNum)
              {
                break;
              }
            }
            rs2.close();
          }
          st.close();
        }
        catch(SQLException e)
        {
          e.printStackTrace();
        }
      }
      transferSQL(sql);
      initSuccessful = true;
    }
  }
  /**功能:数据库初始化操作,其它操作的前提,默认每页显示10条记录。
   *
   * @param conn:数据库连接;
   * @param request:jsp页面request对象;
   * @param querySQL:查询语句;
   * @param startPageNum:开始显示页码
   */
  public void init(Connection conn, HttpServletRequest request, String querySQL, int startPageNum)
  {
    init(conn, request, querySQL, 10, startPageNum);
  }
  /**功能:数据库初始化操作,其它操作的前提,默认从第一页开始显示。
   *
   * @param conn:数据库连接;
   * @param request:jsp页面request对象;
   * @param querySQL:查询语句;
   * @param pageSize:每页显示记录数;
   */
  public void init(Connection conn, HttpServletRequest request, int pageSize, String querySQL)
  {
    init(conn, request, querySQL, pageSize, 1);
  }
  /**功能:数据库初始化操作,其它操作的前提,默认从第一页开始显示,每页显示10条记录。
   *
   * @param conn:数据库连接;
   * @param request:jsp页面request对象;
   * @param querySQL:查询语句;
   */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -