源代码:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<HTML><BODY>
<%
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String strSQL="";
int PageSize=5;//表示每页当中允许的最多记录数
int Page=1; //Page表示的是第几页,当前的默认值是第一页
int totalPage=1;  //表示总共的页数
int totalrecord=0;  //表示总共的记录数
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce){ 
   out.print(ce.getMessage());
}
try{
conn=DriverManager.getConnection("jdbc:odbc:grade");
stmt=conn.createStatement(
  ResultSet.TYPE_SCROLL_INSENSITIVE,
  ResultSet.CONCUR_READ_ONLY);
 //算出总行数
 strSQL="select count(*) as recordcount from grade";
 rs=stmt.executeQuery(strSQL);
 if(rs.next())totalrecord=rs.getInt("recordcount");
 //输出记录
 strSQL="select * FROM grade";
 rs=stmt.executeQuery(strSQL);
 if(totalrecord%PageSize==0)//如果是当前页码的整数倍
     totalPage=totalrecord/PageSize;
  
 else //如果最后还空一页,即当有余数时,余数可以是1,2,3,4
    totalPage=(int)Math.floor(totalrecord/PageSize)+1;
 
 if(totalPage==0)totalPage=1;// totalPage=totalrecord/PageSize位0的时候,表示不满一页
 if(request.getParameter("Page")==null||request.getParameter("Page").equals(""))
            Page=1;
 else
   try{
   Page=Integer.parseInt(request.getParameter("Page"));
}
 catch(java.lang.NumberFormatException e){
     //捕获用户从浏览器地址栏直接输入Page=sdfsdfsdf所造成的异常
      Page=1;
}

if(Page<1)  Page=1;
if(Page>totalPage) Page=totalPage;
rs.absolute((Page-1)*PageSize+1);//跳到第Page页
out.print("<TABLE BORDER='1'>");
for(int iPage=1;iPage<=PageSize;iPage++)
{
  request.setCharacterEncoding("GBK");
  out.print("<tr><td>"+rs.getString("学号")+"</td>");
  out.print("<td>"+rs.getString("姓名")+"</td>");
  out.print("<td>"+rs.getString("语文")+"</td>");
  out.print("<td>"+rs.getString("数学")+"</td>");
  out.print("<td>"+rs.getString("英语")+"</td></tr>");
  if(!rs.next()) break;
 }
 out.print("</TABLE>");
}
 
catch(SQLException e){
                System.out.println(e.getMessage());
     }

finally{
  stmt.close();
  conn.close();
  }
%>
<FORM Action="7-09.jsp" Method="GET">
<%
if(Page!=1){
     out.print("<A HREF=7-09.JSP?Page=1>第一页</A>");
  out.print("<A HREF=7-09.JSP?Page="+(Page-1)+">上一页</A>");if(Page!=totalPage){
     out.print("<A HREF=7-09.JSP?Page="+(Page+1)+">下一页</A>");
  out.print("<A HREF=7-09.JSP?Page="+totalPage+">最后一页</A>");
 }
%>
<BR>输入页数:<input TYPE="TEXT"Name="Page"SIZE="3">
页数:<font COLOR="RED"><%=Page%>/<%=totalPage%><font>
</FORM>
错误提示::
exception org.apache.jasper.JasperException: Unable to compile class for JSPGenerated servlet error:
C:\Program Files\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\JSP\_7_002d09_jsp.java:137: 'catch' without 'try'
    } catch (Throwable t) {
      ^
Generated servlet error:
C:\Program Files\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\JSP\_7_002d09_jsp.java:31: 'try' without 'catch' or 'finally'
    try {
    ^
Generated servlet error:
C:\Program Files\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\JSP\_7_002d09_jsp.java:149: '}' expected
^
3 errors org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    看着像是servlet里面的错,这个jsp的try catch块没问题。
      

  2.   

    <%
    if(Page!=1){
         out.print("<A HREF=7-09.JSP?Page=1>第一页</A>");
      out.print("<A HREF=7-09.JSP?Page="+(Page-1)+">上一页</A>");}//这里有回括的呀。别的还没看
      

  3.   

    if(request.getParameter("Page")==null||request.getParameter("Page").equals(""))
                Page=1;
     else //这边的 {呢?
      try{
       Page=Integer.parseInt(request.getParameter("Page"));