2段JSP加数据库。pagescount.jsp    <%        int ShowPage=1;
        int PageSize=3;
        int RowCount=0;
        int PageCount=0;
        Connection con=null;
        Statement stmt=null;
        ResultSet rs=null;        public void jspInit() 
        {
            try{
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=university","admin","123456");
                stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
                rs.last();
                RowCount=rs.getRow();
                PageCount=((RowCount%PageSize)==0?(Rowcount/PageSzie):(RowCount/PageSize)+1);
            } catch(Exception e) {
                System.out.println(e.toString());
            }
        }        public void jspDestory() 
        {
            try{
                rs.close();
                stmt.close();
                con.close();
            } catch(Exception e) {
                System.out.println(e.toString());
            }
        }        %>
pages.jsp<%@page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
<%@ include file="pagescount.jsp"%><html>
    <head>        <title>JSP Page</title>
    </head>
    <%
        String ToPage=request.getParameter("ToPage");
        if(ToPage!=null) {
            ShowPage=Integer.parseInt(ToPage);
            if(ShowPage>PageCount) {
                ShowPage=PageCount;            } else if(ShowPage<=0) {
                ShowPage=1;
            }
        }
        rs.absolute((ShowPage-1)*PageSize+1);
    %>    <body>        当前是<%=ShowPage%>页,一共<%=PageCount%>页
    
        <%
            for(int i=1;i<PageSize;i++) {
        %>
        编号:<%=rs.getString(2)%>
        日期:<%=rs.getString(3)%>
        书的总页数:<%=rs.getString(4)%>
        价格:<%=rs.getString(5)%>
        书籍名称:<%=rs.getString(6)%>
        作者:<%=rs.getString(7)%>
        备注:<%=rs.getString(8)%>        <%
            if(rs.next())
                break;
            }
        %>
    
        <%
            if(ShowPage!=1) {
        %>
        <a href=pages.jsp?ToPage=<%=1%>>one </a>. 
        <a href=pages.jsp?ToPage=<%=ShowPage-1%>>pre</a>      
        <%
            }
            if(ShowPage!=PageCount) {
        %>    
        <a href=pages.jsp?ToPage=<%=ShowPage+1%>>next </a>
        <a href=pages.jsp?ToPage=<%=Pagecount%>>last </a>. 
        <%
                }
        %>
        <form name="form1" action="pages.jsp" method="post">
            <input type="text" name="topage" value="<%=ShowPage%>" width="50" />    
                
        </form>    
         
        
    </body>
</html>
用的netbeans,编译器报错信息D:\NetBeansTestFile\fenye\build\generated\src\org\apache\jsp\pages_jsp.java:68: 非法的表达式开始
        public void jspInit() {换用eclipse,错误更多,怀疑是书上代码本来就有问题,请大家看看该这么改。谢谢

解决方案 »

  1.   

    这个本身有错误的啊,我也看过这个例子,然后这么写过,后来我改成这样就可以拉,你可以去看下,因为jsp使用public void jspInit()等要加!的.去掉这些就好.
    pagescount.jsp    <%        int ShowPage=1;
            int PageSize=3;
            int RowCount=0;
            int PageCount=0;
            Connection con=null;
            Statement stmt=null;
            ResultSet rs=null;       
                try{
                    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=university","admin","123456");
                    stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
                    rs.last();
                    RowCount=rs.getRow();
                    PageCount=((RowCount%PageSize)==0?(Rowcount/PageSzie):(RowCount/PageSize)+1);
                } catch(Exception e) {
                    System.out.println(e.toString());
                }
            %>
    pages.jsp<%@page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
    <%@ include file="pagescount.jsp"%><html>
        <head>        <title>JSP Page</title>
        </head>
        <%
            String ToPage=request.getParameter("ToPage");
            if(ToPage!=null) {
                ShowPage=Integer.parseInt(ToPage);
                if(ShowPage>PageCount) {
                    ShowPage=PageCount;            } else if(ShowPage<=0) {
                    ShowPage=1;
                }
            }
            rs.absolute((ShowPage-1)*PageSize+1);
        %>    <body>        当前是<%=ShowPage%>页,一共<%=PageCount%>页
        
            <%
                for(int i=1;i<PageSize;i++) {
            %>
            编号:<%=rs.getString(2)%>
            日期:<%=rs.getString(3)%>
            书的总页数:<%=rs.getString(4)%>
            价格:<%=rs.getString(5)%>
            书籍名称:<%=rs.getString(6)%>
            作者:<%=rs.getString(7)%>
            备注:<%=rs.getString(8)%>        <%
                if(rs.next())
                    break;
                }
            %>
        
            <%
                if(ShowPage!=1) {
            %>
            <a href=pages.jsp?ToPage=<%=1%>>one </a>. 
            <a href=pages.jsp?ToPage=<%=ShowPage-1%>>pre</a>      
            <%
                }
                if(ShowPage!=PageCount) {
            %>    
            <a href=pages.jsp?ToPage=<%=ShowPage+1%>>next </a>
            <a href=pages.jsp?ToPage=<%=Pagecount%>>last </a>. 
            <%
                    }
            %>
            <form name="form1" action="pages.jsp" method="post">
                <input type="text" name="topage" value="<%=ShowPage%>" width="50" />    
                    
            </form>    
             
            
        </body>
    </html>
      

  2.   

    if(!rs.next())
                    break;
    要这么写,加上!
      

  3.   

    jsp里面最好不要定义方法,如果一定要定义请写在<%!%>之间!jspInit()、jspDestory() 建议你把这2个方法写在java文件里面。
      

  4.   

    同意楼上的,建议把 分页写到 java里面去, 分页就是 几个参数在运算, 结果集 总行数, 每页 记录行数,当前页号,总页数,先把这些算出来,然后再开始操作 结果集,注意一下下移和定位就好啦!