http://www.cnjsp.com/topic/index.jsp?tclass=2

解决方案 »

  1.   

    int intPageSize;           //一页显示的记录数
    int intRowCount;           //记录总数
    int intPageCount;          //总页数
    int intPage;               //待显示页码
    java.lang.String strPage;int i;//设置一页显示的记录数
    intPageSize =10;//取得待显示页码
    strPage = request.getParameter("page");
    if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
       intPage = 1;
    }
    else{//将字符串转换成整型
       intPage = java.lang.Integer.parseInt(strPage);
       if(intPage<1) intPage = 1;
    }
    ResultSet sqlRst = statemet.executeQuery("select * from bbs order by deptid");
    //分页片断
    %>
     <%   //获取记录总数
    if(sqlRst.next()){
    sqlRst.last();
    intRowCount = sqlRst.getRow();//记算总页数
    intPageCount = (intRowCount+intPageSize-1) / intPageSize;//调整待显示的页码
    if(intPage>intPageCount)  intPage = intPageCount; 
        out.println("<font color=#000099 size=3>  现在共有留言"+intRowCount+"条</font>");
    %><tr> 
                          <td width="8%" align="center" bgcolor="#99CCCC"><font  size=2 color="#000000">删除</font></td>
                          <td width="32%" align="center" bgcolor="#99CCCC"><font color="#000000">留言主题</font></td>
                          <td width="25%" align="center" bgcolor="#99CCCC"><font color="#000000">发布部门</font></td>
                          <td width="29%" align="center" bgcolor="#99CCCC"><font color="#000000">发布人</font></td>
                        </tr>
                       <%
    if(intPageCount>0){
       //将记录指针定位到待显示页的第一条记录上
          sqlRst.absolute((intPage-1) * intPageSize + 1);   //显示数据
       i = 0;
        
       while(i<intPageSize){
      %>
                        <tr> 
                            <%String title =new String(sqlRst.getString("title").getBytes("ISO8859_1"),"GBK");

    if(title.length()>20){
    title=title.substring(0,20);
    }%>                      <td width="8%" align="center"> 
                            <input type="checkbox" name="bbsdel<%=i%>" value="<%=sqlRst.getInt("id")%>">
        </td>
                          <td width="32%" align="center"><a href="../system/bbsmain.jsp?method=5&boardid=<%=sqlRst.getInt("id")%>"><%=title%></a></td>
                         <td width="25%" align="center"><%=new String(sqlRst.getString("dept").getBytes("ISO8859_1"),"GBK")%></td>
                         <td width="29%" align="center">&nbsp;<%=new String(sqlRst.getString("name").getBytes("ISO8859_1"),"GBK")%></td>
                        </tr>
                       <%  if (sqlRst.getRow()==intRowCount)  break;
          sqlRst.next();
          i++;
     
       }
    //}
    %> <tr>
    <td colspan=5><table border="1" cellspacing="0"   bordercolorlight="#000000" bordercolordark="#FFFFFF"cellpadding="0" height="11" width="100%" bgcolor="#99CCCC">
                        <tr> 
    <td width="12%"> <input name=method type=hidden value=3>
                              <div align="center"><a href ="bbsmain.jsp?method=3"><font color="#FFFFFF" size="2"><input type=submit value="删除" name="ok"></font></a> 
                              </div>
                            </td>
                            <td width="12%"> 
                              <div align="center"><a href ="bbsmain.jsp"><font color="#FFFFFF" size="2">第一页</font></a> 
                              </div>
                            </td>
                            
                            <td width="12%"> 
                              <div align="center"> 
                                <%if(intPage<intPageCount){%>
                                <a href="bbsindex.jsp?page=<%=intPage+1%>"><font color="#FFFFFF" size="2">下一页</font></a> 
                                <%}%>
                              </div>
                            </td>
                            
                            <td width="12%"> 
                              <div align="center"> 
                                <%if(intPage>1){%>
                                <a href="bbsindex.jsp?page=<%=intPage-1%>"><font color="#FFFFFF" size="2">上一页</font></a> 
                                <%}%>
                              </div>
                            </td>
                            
                            <td width="12%"> 
                              <%int dd=intPageCount;%>
                              <div align="center"><a href= "bbsindex.jsp?page=<%=intPageCount%>"><font color="#FFFFFF" size="2">末页</font></a> 
                              </div>
                            </td>
                            
                          <td width="11%"> 
                            <div align="center"><font color="#FFFFFF" size="2">第<%=intPage%> 
                                页</font></div>
                            </td>
                            
                          <td width="11%"> 
                            <div align="center"><font size="2" color="#FFFFFF">总<%=intPageCount%> 
                                页</font></div>
                            </td>
                          </tr>
                        </table>
    </td></tr>   <%}}
      else{
           out.println("对不起现在没有留言!");
      }
      sqlRst.close();
      %>
                      </table>
      </form>
                    </td>
                  </tr>
                </table>
                <%
      

  2.   

    int intPageSize;           //一页显示的记录数
    int intRowCount;           //记录总数
    int intPageCount;          //总页数
    int intPage;               //待显示页码
    java.lang.String strPage;int i;//设置一页显示的记录数
    intPageSize =10;//取得待显示页码
    strPage = request.getParameter("page");
    if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
       intPage = 1;
    }
    else{//将字符串转换成整型
       intPage = java.lang.Integer.parseInt(strPage);
       if(intPage<1) intPage = 1;
    }
    ResultSet sqlRst = statemet.executeQuery("select * from bbs order by deptid");
    //分页片断
    %>
     <%   //获取记录总数
    if(sqlRst.next()){
    sqlRst.last();
    intRowCount = sqlRst.getRow();//记算总页数
    intPageCount = (intRowCount+intPageSize-1) / intPageSize;//调整待显示的页码
    if(intPage>intPageCount)  intPage = intPageCount; 
        out.println("<font color=#000099 size=3>  现在共有留言"+intRowCount+"条</font>");
    %><tr> 
                          <td width="8%" align="center" bgcolor="#99CCCC"><font  size=2 color="#000000">删除</font></td>
                          <td width="32%" align="center" bgcolor="#99CCCC"><font color="#000000">留言主题</font></td>
                          <td width="25%" align="center" bgcolor="#99CCCC"><font color="#000000">发布部门</font></td>
                          <td width="29%" align="center" bgcolor="#99CCCC"><font color="#000000">发布人</font></td>
                        </tr>
                       <%
    if(intPageCount>0){
       //将记录指针定位到待显示页的第一条记录上
          sqlRst.absolute((intPage-1) * intPageSize + 1);   //显示数据
       i = 0;
        
       while(i<intPageSize){
      %>
                        <tr> 
                            <%String title =new String(sqlRst.getString("title").getBytes("ISO8859_1"),"GBK");

    if(title.length()>20){
    title=title.substring(0,20);
    }%>                      <td width="8%" align="center"> 
                            <input type="checkbox" name="bbsdel<%=i%>" value="<%=sqlRst.getInt("id")%>">
        </td>
                          <td width="32%" align="center"><a href="../system/bbsmain.jsp?method=5&boardid=<%=sqlRst.getInt("id")%>"><%=title%></a></td>
                         <td width="25%" align="center"><%=new String(sqlRst.getString("dept").getBytes("ISO8859_1"),"GBK")%></td>
                         <td width="29%" align="center">&nbsp;<%=new String(sqlRst.getString("name").getBytes("ISO8859_1"),"GBK")%></td>
                        </tr>
                       <%  if (sqlRst.getRow()==intRowCount)  break;
          sqlRst.next();
          i++;
     
       }
    //}
    %> <tr>
    <td colspan=5><table border="1" cellspacing="0"   bordercolorlight="#000000" bordercolordark="#FFFFFF"cellpadding="0" height="11" width="100%" bgcolor="#99CCCC">
                        <tr> 
    <td width="12%"> <input name=method type=hidden value=3>
                              <div align="center"><a href ="bbsmain.jsp?method=3"><font color="#FFFFFF" size="2"><input type=submit value="删除" name="ok"></font></a> 
                              </div>
                            </td>
                            <td width="12%"> 
                              <div align="center"><a href ="bbsmain.jsp"><font color="#FFFFFF" size="2">第一页</font></a> 
                              </div>
                            </td>
                            
                            <td width="12%"> 
                              <div align="center"> 
                                <%if(intPage<intPageCount){%>
                                <a href="bbsindex.jsp?page=<%=intPage+1%>"><font color="#FFFFFF" size="2">下一页</font></a> 
                                <%}%>
                              </div>
                            </td>
                            
                            <td width="12%"> 
                              <div align="center"> 
                                <%if(intPage>1){%>
                                <a href="bbsindex.jsp?page=<%=intPage-1%>"><font color="#FFFFFF" size="2">上一页</font></a> 
                                <%}%>
                              </div>
                            </td>
                            
                            <td width="12%"> 
                              <%int dd=intPageCount;%>
                              <div align="center"><a href= "bbsindex.jsp?page=<%=intPageCount%>"><font color="#FFFFFF" size="2">末页</font></a> 
                              </div>
                            </td>
                            
                          <td width="11%"> 
                            <div align="center"><font color="#FFFFFF" size="2">第<%=intPage%> 
                                页</font></div>
                            </td>
                            
                          <td width="11%"> 
                            <div align="center"><font size="2" color="#FFFFFF">总<%=intPageCount%> 
                                页</font></div>
                            </td>
                          </tr>
                        </table>
    </td></tr>   <%}}
      else{
           out.println("对不起现在没有留言!");
      }
      sqlRst.close();
      %>
                      </table>
      </form>
                    </td>
                  </tr>
                </table>
      

  3.   

    这是一个典型的JSP读取数据库的问题,要想动态产生页面,当然要将所有文章存放在数据库中。最简单的例子就是用一张表专门存放文章信息,字段可以这样设计:
    ID
    标题
    作者
    日期
    人气
    内容下面是例子程序代码,文件名为selectdb.jsp。
    <%
    java.sql.Connection sqlCon;
    java.sql.Statement sqlStmt;
    java.sql.ResultSet sqlRst;String strCon;
    String strSQL;int intPageSize;
    int intRowCount;
    int intPageCount;
    int intPage;
    String strPage;int i;
    intPageSize = 20;strPage = request.getParameter("page");
    if(strPage==null){
     intPage = 1;
    }
    else{
     intPage = java.lang.Integer.parseInt(strPage);
     if(intPage<1) intPage = 1;
    }
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    strCon = "jdbc:odbc:testsqlCon = java.sql.DriverManager.getConnection(strCon,"sa","");sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);strSQL = "select title,author,date,count from artical"
    sqlRst = sqlStmt.executeQuery(strSQL);
    sqlRst.last();
    intRowCount = sqlRst.getRow();intPageCount = (intRowCount+intPageSize-1) / intPageSize;if(intPage>intPageCount) intPage = intPageCount;
    %><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>JSP</title>
    </head>
    <body>
    <table border="1" cellspacing="0" cellpadding="0">
    <tr>
    <th>标题</th>
    <th>作者</th>
    <th>日期</th>
    <th>人气</th>
    </tr><%
    if(intPageCount>0){
     sqlRst.absolute((intPage-1) * intPageSize + 1); i = 0;
     while(i<intPageSize && !sqlRst.isAfterLast()){
    %>
    <tr>
     <td><%=sqlRst.getString(1)%></td>
     <td><%=sqlRst.getString(2)%></td>
     <td><%=sqlRst.getString(3)%></td>
     <td><%=sqlRst.getString(4)%></td>
    </tr>
    <%
    sqlRst.next();
    i++;
     }
    }
    %>
    </table>第<%=intPage%>页/总共<%=intPageCount%>页
    <%if(intPage>1){%>
    <a href="selectdb.jsp?page=<%=intPage-1%>">前一页</a>
    <%}%>
    <%if(intPage<intPageCount){%>
    <a href="selectdb.jsp?page=<%=intPage+1%>">下一页</a>
    <%}%>
    </body>
    </html><%
    sqlRst.close();
    sqlStmt.close();
    sqlCon.close();
    %>