运行以下程序后,第一页可以正常显示,但点击上一页,下一页就出404的错,真不知是哪里不行哦,我用的是TOMCAT6。0
不知怎么改才能出现分页显示的效果,希望各位前辈多指教啊 !!!//以下为分页的代码:
****pagination.jsp
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8""%>
<html>
  <head>
    <title>分页显示</title>
  </head>
  <body>
    <center>
    <h1>人员列表</h1>
    <hr>
    <br>
    <%!
        final String jspUrl = "pagination.jsp" ;
    %>
    <%
        int lineSize = 10 ;
        int currentPage = 1 ;
    %>
    <%
        try
        {
            currentPage = Integer.parseInt(request.getParameter("cp")) ;
        }
        catch(Exception e)
        {}
    %>
    <%
        final String DBDRIVER = "com.mysql.jdbc.Driver" ;
        final String DBURL = "jdbc:mysql://localhost/test" ;
        final String DBUSER = "root" ;
        final String DBPASSWORD = "root" ;
        Connection conn = null ;
    %>
    <%
        try
        {
            Class.forName(DBDRIVER) ;
            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
            String sql = "SELECT id,uid,name,password FROM person" ;
            PreparedStatement pstmt = null ;
            pstmt = conn.prepareStatement(sql) ;
            ResultSet rs = pstmt.executeQuery() ;
           
    %>
    <script language="javaScript">
        function openPage(curpage)
        {
            document.spage.cp.value = curpage ;
            document.spage.submit();
        }
    </script>
    <form name="spage" action="<%=jspUrl%>">
        <input type="button" value="首页" onClick="openPage(1)">
        <input type="button" value="上一页" onClick="openPage(<%=currentPage-1%>)">
        <input type="button" value="下一页" onClick="openPage(<%=currentPage+1%>)">
        <input type="button" value="尾页">
        <input type="hidden" name="cp" value="">
    </form>
    <table border="1" width="80%">
    <tr>
        <td>编号</td>
        <td>名称</td>
        <td>姓名</td>
        <td>密码</td>
        <td colspan="2">操作</td>
    </tr>
    <%
           
            int i = 0 ;
            for(int x=0;x<(currentPage-1)*lineSize;x++)
            {
                rs.next();
            }
            for(int x=0;x<lineSize;x++)
            {
                if(rs.next())
                {
                    i++ ;
                    int id = rs.getInt(1) ;
                    String userid = rs.getString(2) ;
                    String name = rs.getString(3) ;
                    String password = rs.getString(4) ;
        %>
                <tr>
                    <td><%=id%></td>
                    <td><%=userid%></td>
                    <td><%=name%></td>
                    <td><%=password%></td>
                    <td>更新</td>
                    <td>删除</td>
                </tr>
        <%
                }
            }
            rs.close() ;
            pstmt.close() ;
            if(i==0)
            {
    %>
                <tr>
                    <td colspan="6">没有任何数据!!</td>
                </tr>
    <%
            }
    %>
    </table>
    <%
        }
        catch(Exception e)
        {
    %>
            <h2>出错啦!!!</h2>
    <%
        }
        finally
        {
            conn.close() ;
        }
    %>
</center>
  </body>
</html>

解决方案 »

  1.   

    写的太混乱了,而且你这么实现的分页一点意义都没有。学学使用sql实现分页吧。
      

  2.   


    package com;
    import java.sql.*;
    import java.util.*;;
    public class sqlManage {
    private SqlBean dbc;
    private Connection con;
    private int PAGESIZE=15; //每页行数
    private int PAGENUMBER=0; //页数
    private int PAGEID=0; //第?页
    private int num=0;
    private ResultSet rs=null;
    public sqlManage(String EmployeeID,String sql){
    try {
    dbc=new SqlBean();
    con=dbc.getConncet();
    Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs=st.executeQuery(sql);
    rs.last();
    num=rs.getRow();
    rs.first();
    this.PAGENUMBER=num/PAGESIZE+(num%PAGESIZE>0?1:0);
    System.out.println(PAGENUMBER);
    } catch (Exception e) {
    System.out.println(e);
    }
    }
    public int getNum() {
    return num;
    }
    public void setNum(int num) {
    this.num = num;
    }
    public int getPAGEID() {
    return PAGEID;
    }
    public void setPAGEID(int pageid) {
    PAGEID = pageid;
    }
    public int getPAGENUMBER() {
    return PAGENUMBER;
    }
    public void setPAGENUMBER(int pagenumber) {
    PAGENUMBER = pagenumber;
    }
    public int getPAGESIZE() {
    return PAGESIZE;
    }
    public void setPAGESIZE(int pagesize) {
    PAGESIZE = pagesize;
    }
    public Vector getData(int pageid){
    if(pageid<1){
    pageid=1;
    }
    else if(pageid>PAGENUMBER){
    pageid=PAGENUMBER;
    }
    try {
    this.PAGEID=pageid;
    rs.first();
    for(int i=0;i<(pageid-1)*PAGESIZE;i++){
    rs.next();
    }
    Vector alldata=new Vector();
    for(int i=0;i<PAGESIZE;i++){
    Vector v=new Vector();
    int cols=rs.getMetaData().getColumnCount();
    for(int j=0;j<cols;j++){
    String str=rs.getString(j+1);
    System.out.println(str);
    v.add(str);

    }
    alldata.add(v);
    if(!rs.next()){
    break;
    }
    }
    return alldata;
    } catch (Exception e) {
    System.out.println(e);
    return null;
    }
    }}
      

  3.   

    我下面的代码用到了SQL语句,是用mysql连接的
    *****数据库脚本-- 删除表
    DROP TABLE person ;
    -- 建立person表
    CREATE TABLE person
    (
    -- 生成一个流水号,观察显示的记录数
    id int AUTO_INCREMENT NOT NULL PRIMARY KEY ,
    -- 用户的登陆ID
    uid varchar(32) ,
    -- 用户的真实姓名
    name varchar(32) ,
    -- 用户的登陆密码
    password varchar(20)
    ) ;
    -- 插入测试数据
    INSERT INTO person(uid,name,password) VALUES ('per01','人01','csdn01') ;
    INSERT INTO person(uid,name,password) VALUES ('per02','人02','csdn02') ;
    ...............先后插入了28条数据,但就是显示效果时,出错,第一页很正常的,就是下一页不行,是不是我这边的这个用法不行“<%!
       final String jspUrl = "pagination.jsp" ;
       %>
      <form name="spage" action="<%=jspUrl%>">”,
    因为它显示的是404错误,是找不到页面啊,该怎样去修改呢,其他的都挺正常的啊,这个跳转应该不存在什么问题啊****pagination.jsp
    <%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8""%>
    <html>
      <head>
       <title>分页显示</title>
      </head>
      <body>
       <center>
       <h1>人员列表</h1>
       <hr>
      <br>
       <%!
       final String jspUrl = "pagination.jsp" ;
      %>
       <%
       int lineSize = 10 ;
       int currentPage = 1 ;
      %>
       <%
        try
       {
       currentPage = Integer.parseInt(request.getParameter("cp")) ;
       }catch(Exception e){
      
       }
       %>
       <%
      final String DBDRIVER = "com.mysql.jdbc.Driver" ;
      final String DBURL = "jdbc:mysql://localhost/test" ;
      final String DBUSER = "root" ;
      final String DBPASSWORD = "root" ;
      Connection conn = null ;
       %>
       <%
       try
       {
      Class.forName(DBDRIVER) ;
      conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
      String sql = "SELECT id,uid,name,password FROM person" ;
      PreparedStatement pstmt = null ;
      pstmt = conn.prepareStatement(sql) ;
      ResultSet rs = pstmt.executeQuery() ;
       
        %>
       <script language="javaScript">
       function openPage(curpage)
       {
      document.spage.cp.value = curpage ;
      document.spage.submit();
      }
       </script>
      <form name="spage" action="<%=jspUrl%>">
      <input type="button" value="首页" onClick="openPage(1)">
      <input type="button" value="上一页" onClick="openPage(<%=currentPage-1%>)">
      <input type="button" value="下一页" onClick="openPage(<%=currentPage+1%>)">
      <input type="button" value="尾页">
      <input type="hidden" name="cp" value="">
      </form>
      <table border="1" width="80%">
      <tr>
      <td>编号</td>
      <td>名称</td>
      <td>姓名</td>
      <td>密码</td>
      <td colspan="2">操作</td>
      </tr>
       <%
       int i = 0 ;
       for(int x=0;x<(currentPage-1)*lineSize;x++){
       rs.next();
       }
       for(int x=0;x<lineSize;x++){
       if(rs.next())
       {
       i++ ;
      int id = rs.getInt(1) ;
      String userid = rs.getString(2) ;
      String name = rs.getString(3) ;
      String password = rs.getString(4) ;
       %>
      <tr>
      <td><%=id%></td>
      <td><%=userid%></td>
      <td><%=name%></td>
      <td><%=password%></td>
      <td>更新</td>
      <td>删除</td>
      </tr>
       <%
               }
               }
               rs.close() ;
               pstmt.close() ;
               if(i==0){
       %>
       <tr>
       <td colspan="6">没有任何数据!!</td>
       </tr>
       <%
       }
       %>
       </table>
      <%
       }catch(Exception e){
      %>
       <h2>出错啦!!!</h2>
      <%
       }finally{
       conn.close() ;
       }
      %>
    </center>
      </body>
    </html>
      

  4.   

    你上一页,下一页的链接错了,所以报404啊。你在JSP页面写的分页,那点上一页,下一页的时候还是得跳转到此页面啊,
    function openPage(curpage)
      {
    var url='pagination.jsp?cp='+curpage;
    window.location.href=url;
       }
    大致应该是这样吧,具体还得你再调适。你这个JSP页面的form的action的值没有作用,因为你没有submit按钮
      

  5.   

    提供一个灵活的分页,可自定义显示条数的分页
    http://download.csdn.net/source/1823849
      

  6.   

         谢谢各位大虾们的帮助,
        用了一天的时间,
      问题终于找出来了,是tomcat容器配置布署的问题。     散分吧,见者有分。