用jsp生成静态页面后,如何进行静态页面的分页显示.

解决方案 »

  1.   

    可以用vector实现分页,虽然效率不高,我从网站和书上学,加了自己的东西,通过jsp调用两个java就可以了
    ziyuansmn.java
    package MSHOME;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Vector;
    import MSHOME.ziyuan;
    import javax.servlet.http.HttpServletRequest;
    public class ziyuansmn {
    private javax.servlet.http.HttpServletRequest request; //建立页面请求
    private boolean sqlflag = true ; //对接收到的数据是否正确
    private Vector ziyuanlist; //显示图书列表向量数组
    private int page = 1; //显示的页码
    private int pageSize=10; //每页显示的资源数
    private int pageCount =0; //页面总数
    private int recordCount =0; //查询的记录总数
    private int  startRow=1;   
    private int  endRow=pageSize;
     
    public ziyuansmn() throws Exception{
    super();
    } public Vector getziyuanlist() {
    return ziyuanlist;
    } public boolean getSqlflag() {
    return sqlflag;
    }
    public String getGbk( String str) {
    try
    {
    str =  new String(str.getBytes("ISO-8859-1"),"GBK");
    return str;
    }
    catch (Exception e)
    {
    return str;
    }
    }
    // 将页面表单传来的资料分解
    public boolean execute(HttpServletRequest res) throws Exception {
    request = res;
    String PAGE = request.getParameter("page");   //页码
    try
    {
    page = Integer.parseInt(PAGE);
    }
    catch (NumberFormatException e)
    {
    page = 1;
    }
    //取出记录数
    String sqlStr = "select count(*) from 资源总表";
    try
    {
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@219.217.50.183:1521:MSHOME", "MS_HOME", "MSHOME");
        Statement stmt = con.createStatement();
    ResultSet rs1 = stmt.executeQuery(sqlStr);
    if (rs1.next()) recordCount = rs1.getInt(1);
    rs1.close();
    }
    catch (SQLException e)
    {
    return false;
    }
    //设定pageCount
    if (recordCount < 1)
                pageCount = 0;
            else
                pageCount = (recordCount - 1) / pageSize + 1;

    //检查查看的页面数是否在范围内
    //System.out.print(page);
    //System.out.print(pageCount);
    if (page < 1)  
                page = 1;
            if (page > pageCount)
                page = pageCount;
            if(page>1&&page<pageCount)   
              {   
                    startRow=(page-1)*pageSize+1;   
                    endRow=page*pageSize;   
              }   
            else if(page>=pageCount)   
              {   
                    startRow=(pageCount-1)*pageSize+1;   
                    endRow=recordCount;   
              } 
           //System.out.println(startRow);
           //System.out.print(endRow); try
    {
    String sqlStr1="select * from 资源总表";
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@219.217.50.183:1521:MSHOME", "MS_HOME", "MSHOME");
        Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
         ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = stmt.executeQuery(sqlStr1);
        ziyuanlist   =   new   Vector();
    if(startRow>=1){  
    rs.absolute(startRow);  
    int i = 0; 
    while (i<((endRow-startRow)+1))
    {
    ziyuan ziyuan = new ziyuan();
    ziyuan.setclassname(rs.getString("文件类别"));
    ziyuan.setfilename(rs.getString("文件名称"));
    ziyuan.setupperson(rs.getString("上传者"));
    ziyuan.setuptime(rs.getString("上传时间"));
    ziyuanlist.addElement(ziyuan);
    i++;
    rs.next();
    }
    }
    rs.close();
    return true;
    }
    catch(Exception   e){   
              e.printStackTrace(); 
              return false;
            } 
    }
    public int getPage() { //显示的页码
    return page;
    }
    public void setPage(int newpage) {
    page = newpage;
    } public int getPageSize(){ //每页显示的资源数
    return pageSize;
    }
    public void setPageSize(int newpsize) {
    pageSize = newpsize;
    } public int getPageCount() { //页面总数
    return pageCount;
    }
    public void setPageCount(int newpcount) {
    pageCount = newpcount;
    } public long getRecordCount() {
    return recordCount;
    }
    public void setRecordCount(int newrcount) {
    recordCount= newrcount;
    }
    }ziyuan.javapackage MSHOME;
    public class ziyuan {

    private String classname ;  //图书类别名
    private String filename; //作者
    private String upperson; //出版社
    private String uptime ; //书号

    public ziyuan() {
    classname = "";
    filename = "";
    upperson = "";
    uptime = "";
    }

    public void setclassname(String newclassname) {
    this.classname = newclassname;
    }
    public String getclassname() {
    return classname;
    }

    public void setfilename(String newfilename) {
    this.filename = newfilename;
    }
    public String getfilename() {
    return filename;
    }

    public void setupperson(String newupperson) {
    this.upperson = newupperson;
    }
    public String getupperson() {
    return upperson;
    }

    public void setuptime(String newuptime) {
    this.uptime = newuptime;
    }
    public String getuptime() {
    return uptime;
    }
    }
      

  2.   

    在数据库分页好了之后显示在你的jsp页面上