请问怎样使用JSP技术做分页显示? http://expert.csdn.net/Expert/topic/2527/2527918.xml?temp=.4388544 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <%@ include file="header.inc"%> //调用用来显示时间的JavaBean (dates.JspCalendar)<jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar" /> <%@ page language="java" import="java.sql.*" %>//调用用来执行数据库操作的JavaBean (test.faq)<jsp:useBean id="workM" scope="page" class="test.faq" />//处理中文问题的自定义函数<%!public String getStr(String str){ try { String temp_p=str; byte[] temp_t=temp_p.getBytes("GBK"); String temp=new String(temp_t,"ISO8859_1"); return temp; } catch(Exception e) { e.printStackTreace(); } return "null";}%> <%! //自定义的静态函数,作用是:用数字分别来表示商品的种类。public static String category(int id){ try { switch(id) { case 1: return "计算机类"; case 2: return "英语类"; default: return "其他类"; } } catch(Exception e) { e.printStackTrace(); } return "null";}%> <TABLE border=0 cellPadding=0 cellSpacing=0 width=760 align="center"> <TBODY> <tr><td align="left" height=25><% //显示用户名if(session.getAttribute("username")!=null){out.println(session.getAttribute("username"));}%> 当前位置:<a href="../index.jsp">首页</a> -> 商品分类 </td> <!—显示时间--><%@ include file="../member/date.inc"%> </tr> <TR bgColor=#3399ff> <TD height=1 colspan="2"><IMG height=1 src="images/spacer.gif" width=16></TD></TR> <tr><td height=10 colspan="2"><IMG height=1 src="images/spacer.gif" width=16></td></tr> </TBODY></TABLE> <table align="center" border="0" width="760" cellspacing="0" cellpadding="0" height="355"> <tr> <td width="150" height="355" valign="top"></td> <td width="10" height="100%"></td> <td width="1" height="100%" bgcolor="#3399ff"></td> <td width="10" height="100%"></td> <td width="589" height="331" valign="top" background="images/bg1.gif"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="62%" height="20" bgcolor="#3399ff"> <font color="#ffffff">标题</font> </td> <td width="15%" height="20" bgcolor="#3399ff"> <font color="#ffffff">作者</font> </td> <td width="15%" height="20" bgcolor="#3399ff"> <font color="#ffffff">类别</font> </td> <td width="8%" height="20" bgcolor="#3399ff"> <font color="#ffffff">特价</font> </td> </tr> <ul> <%///////////////算出共多少页 int t; int mtotal; t=0; String strSQLsize="SELECT id FROM book where good_price=true"; ResultSet RSsize = workM.executeQuery(strSQLsize); while(RSsize.next()){ t=t+1; } //如果纪录总数除以每页的显示个数,余数大于0,那么 //逻辑页数应该为商+1; //否则,逻辑页数应为所得的商 //t表示记录的总数 //3表示了每页所显示的个数 //mtotal为逻辑页数 if((t%3)>0){ mtotal=t/3+1; }else mtotal=t/3; %> <%! //定义变量String pageNo, mTmp; int i, j, k; %> <% //pageNo表示请求的是第几页 pageNo = request.getParameter("pageNo"); //如果pageNo为null值,则赋值为1 if(pageNo == null){ pageNo = "1"; } //j表示的是pageNo对应的整型值 j = Integer.parseInt(pageNo); //当j的值小于1时,赋值为1if(j < 1) j = 1; //当j的值大于总页数时,赋值为mtotal if(j > mtotal) j = mtotal; %> <% // 读取数据库记录 String strSQL="SELECT * FROM book where good_price=true order by id desc"; ResultSet RSa = workM.executeQuery(strSQL); //记录集移动到相应的位置 //j为逻辑页数 for(k = 0;k < (j-1)*3;k++) { RSa.next(); } i = 0; k = 1; while (RSa.next()) { i = i + 1; //超过3条,循环退出 if(i == 4) { k = 0; break; } out.print("<tr height='23'><td><li><a href=javascript:show('book.jsp?id=");out.print(RSa.getInt("id")+"','详细资料',480,500)"); out.print(">"+getStr(RSa.getString("name"))+"</a></td><td>");out.print(getStr(RSa.getString("author"))+"</td><td>");out.print( (category(RSa.getInt("category")))+"</td><td>特价</td></tr>"); } i = i - k; //关闭记录集 RSa.close(); %><%//以下代码行是用来显示页面数的//当j大于1时,就会显示“第一页”、“上一页”字样if(j > 1){%> <a href="good_price.jsp?pageNo=1">第一页</a><% int ii = Integer.parseInt(pageNo,10); if(ii > 1) ii = ii -1; String ssTmp = Integer.toString(ii);%> <a href="good_price.jsp?pageNo=<%=ssTmp%>">上一页</a><%}//同样地,当j小于总逻辑页数时,就会显示“下一页”、“最后页”字样if(j < mtotal){ int ii = Integer.parseInt(pageNo,10); if(ii < mtotal) ii = ii + 1; String ssTmp = Integer.toString(ii);%> <a href="good_price.jsp?pageNo=<%=ssTmp%>">下一页</a> <a href="good_price.jsp?pageNo=<%=mtotal%>">最后页</a><%}if(mtotal < j) j = mtotal; %> <tr><td height="1" bgcolor="" colspan="2"> <hr color="#3399ff"> 结果共<%=mtotal%>页,显示第<%=j%>页</td> <td align="left" colspan="2" height="32"> <a href="post.jsp">发布书的信息</a> </td> <form name="form2" action="index.jsp" method="post"> <input type="hidden" name="pageNo" value=""> </form> <script language="javascript"> function sub_page(id) { if(id==0) document.form2.pageNo.value=0; else if(id==1) document.form2.pageNo.value=2; document.form2.submit(); } </script> </tr> </table> </form> 商品分类:<a href="category.jsp?id=1">计算机类</a> | <a href="category.jsp?id=2">英语类 </a> | <a href="category.jsp?id=3">其他类 </a> | </td> </tr> </table><!—尾文件--><%@ include file="footer.inc"%> jsp通过只身的类可以进行分页显示。但是在实际应用中多靠数据库来完成。如果靠自身编码完成比较麻烦。你还是依靠数据库比较好而且速度快! 一般页面显示风格由jsp来控制,数据的分页就由javabean来控制了。 <%@ page language="java" %><%@page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><%@ page import="java.util.*"%><!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head><SCRIPT LANGUAGE="javascript"> function openwindow(){ self.location="banjitianjia.jsp";}</SCRIPT><title>班级浏览</title><META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"></head><body bgcolor="#FFFFFF"><% if (session.getAttribute("username")==null) {%> <script language="javascript"> alert("非法登陆!"); document.location.href="../login.html"; </script> <%} String readonly=""; String tmp=(String)session.getAttribute("readonly"); //out.println(tmp); if (!tmp.equals("n")) readonly="y"; else readonly="n";%><form method="post" action="deletebanji.jsp"><table width="600" border="0" cellspacing="2" cellpadding="1"><tr bgcolor="#00FF00"><td>选择</td><td>班级</td><td>年级</td><td>教室</td><td>年制</td><td>专业</td><td>班主任</td><td>备注</td><td>修改</td></tr> <%!int PageSize=10;int ShowPage=1;int RowCount=0;int PageCount=0;%> <% String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; String SConnStr="jdbc:odbc:albumSource"; Class.forName(sDBDriver); Connection conn=DriverManager.getConnection(SConnStr); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from 班级 ORDER BY grade DESC"; ResultSet rs=stmt.executeQuery(sql); %> <% if(!rs.next()) out.println("没有数据!"); else{ rs.last(); RowCount=rs.getRow(); PageCount=((RowCount%PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1); %> <% 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); %> <% for (int i=1;i<=PageSize;i++) { int id=rs.getInt("id"); String banji=rs.getString("grade"); String nianji=rs.getString("class"); String room=rs.getString("classroom"); String nianzhi=rs.getString("nianzhi"); String zhuanye=rs.getString("major"); String banzhuren=rs.getString("cmaster"); String beizu=rs.getString("meno"); %> <tr bgcolor="#00FF00"><td><INPUT type="checkbox" id=xuanze name=xuanze value=<%=id%>></td><td><%=banji%></td><td><%=nianji%></td><td><%=room%></td><td><%=nianzhi%></td><td><%=zhuanye%></td><td><%=banzhuren%></td><td><%=beizu%></td><%if (readonly.equals("n")){%><td><a href=banjixiugai.jsp?id=<%=id%>>修改</a></td><%}%></tr> <%if(!rs.next()) break; } %> <% rs.close(); stmt.close(); %> <tr> <%if (readonly.equals("n")) {%> <td> <INPUT type="submit" value="删除" id=submit1 name=submit1> </td> <td> <INPUT type="button" value="添加" id=button1 name=button1 onclick="openwindow()"> </td> <%}%> </tr> </table> </form><table width="600" border="0" cellspacing="2" cellpadding="1"><tr bgcolor="#ffffff"> <td width="400" height="70"><div align="right">共<%=PageCount%>/<font color="#FF0000"><%=ShowPage%></font>页</div></td> <td width="56"><div align="center"> <%if(ShowPage!=1){%> <a href=classview.jsp?ToPage=<%=1%>>首页</a> <%}else{%> <font color="#CCCCCC">首页</font> <%}%> </div></td> <td width="49"><div align="center"> <%if(ShowPage!=1){%> <a href=classview.jsp?ToPage=<%=ShowPage-1%>>上页</a> <%}else{%> <font color="#CCCCCC">上页</font> <%}%> </div></td> <td width="54"><div align="center"> <%if(ShowPage!=PageCount){%> <a href=classview.jsp?ToPage=<%=ShowPage+1%>>下页</a> <%}else{%> <font color="#CCCCCC">下页</font> <%}%> </div></td> <td width="46"><div align="center"> <%if(ShowPage!=PageCount){%> <a href=classview.jsp?ToPage=<%=PageCount%>>尾页</a> <%}else{%> <font color="#CCCCCC">尾页</font> <%}%> </div></td> <td width="100" valign="bottom"><div align="center"> <table width="99%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <form action=classview.jsp method=post> <input name=ToPage type="text" value=<%=ShowPage%> size="4"> 页</form></td> </tr> </table> </div></td> </tr> </table> <%}%> </body></html> <%@ page contentType="text/html;charset=GB2312"%><%@ page import="java.sql.*"%><html><body><%!int pagesize=8; //每页显示数目int pagecount; //总页数int showpage; //当前页数%><%Connection con;Statement sql;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){out.print(e);}try{String key=request.getParameter("id");if(key==null){key="";}byte d[] =key.getBytes("ISO-8859-1");key=new String(d);con=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};dbq=g:\\database\\sun.mdb");sql=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=sql.executeQuery("select * from sa");rs.last();int rowcount=rs.getRow();pagecount=(rowcount%pagesize==0)?(rowcount/pagesize):(rowcount/pagesize+1);%><p>总共有<%=rowcount%>条记录</p><table border=1><tr><td width=100>编号</td><td width=100>学号</td><td width=100>姓名</td><td width=100>数学成绩</td><td width=100>语文成绩</td><td width=100>物理成绩</td><td width=100>化学成绩</td><td width=100>英语成绩</td></tr><%rs.beforeFirst();String s=request.getParameter("page");if(s==null){s="0";}try{showpage=Integer.parseInt(s);}catch(NumberFormatException e){out.print(e);}if(showpage>=pagecount){showpage=pagecount;}if(showpage<=1){showpage=1;}int posion=(showpage-1)*pagesize+1;rs.absolute(posion);for(int i=1;i<=pagesize && !rs.isAfterLast();i++){out.print("<tr>");for(int k=1;k<9;k++){out.print("<td>"+rs.getString(k)+"</td>");}out.print("</tr>");rs.next();}con.close();out.print("</table>");}catch(SQLException e){out.print(e);}for(int i=1;i<=pagecount;i++){out.print("<a href=king.jsp?page="+i+">"+i+"</a>");out.print(" ");}%></body></html> 我自己做的是javabean和jsp,你要吗, jsp分页可以有许多方法。但效率就相差很大。我刚刚正在做一个商业网站。我把我的源代码发给你吧。数据库你可要自己修改用户名密码哦。javabean里的源代码package sql;import java.sql.*;public class operation1 { String sDBDriver = "org.gjt.mm.mysql.Driver"; //String sDBDriver = "com.mysql.jdbc.Driver"; String sConnStr = "jdbc:mysql://localhost:3306/test?user=root;password=pallas"; Connection conn = null; ResultSet rs = null; Statement stmt; int rec_count=0; public operation1() { try { Class.forName(sDBDriver); conn = DriverManager.getConnection(sConnStr); stmt = conn.createStatement(); } catch(java.lang.ClassNotFoundException e) { System.err.println("create(): " + e.getMessage()); } catch(SQLException e){ } } public int getcount(ResultSet rs_temp){ try{ while(rs_temp.next()){ rec_count=rec_count+1; } }catch(SQLException e){ } return rec_count; } public boolean executeUpdate(String sql){ try{ stmt.executeUpdate(sql); return true; }catch(SQLException e){ System.err.println("aq.executeUpdate: " + e.getMessage()); return false; } } public Statement getStatement(){ return stmt; } public ResultSet executeQuery(String sql) { rs = null; try { rs = stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage()); } return rs; }}jsp里的源代码<html><body><%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %><jsp:useBean id="data" class="sql.operation1" scope="page"/> <%int pages=0;//当前页码int pagesize=10;ResultSet res;String pages_str=request.getParameter("pages");if(pages_str==null){ pages_str="0";}pages = new Integer(pages_str).intValue();//使用新建一个变量创建数据。String bottom,top,sql="";bottom=String.valueOf(pages*pagesize+1);top=String.valueOf(pages*pagesize+pagesize);sql="select * from faq where id>="+bottom+" and id<="+top;res = data.executeQuery(sql);String question,answer;while(res.next()){ question=res.getString(2); answer=res.getString(3); out.print("<p>"+question+"<li>"+answer+"<br>");}out.print("<p><hr>");String space=" ";int total_page;//计算页数与除以10后留下的页数。sql="select ceiling(count(*)/"+pagesize+") as count1 from faq"; //使用count(*)取得记录集res=data.executeQuery(sql); total_page=res.getInt(1);for(int intloop=0;intloop<total_page;intloop++){ String N_url="<a href=page_show2.jsp?pages="+intloop+">",url1="</a>"; out.print(N_url+(intloop+1)+url1+space); }res.close();%> </body></html>希望对你有帮助 好东西当然要分享啊!看我的:经典分页程序jsp+javaBeanhttp://www.52free.com/bbs/index.php?act=ST&f=8&t=148&st=0#entry298如果数据库不同只需修改javaBean中的驱动即可,页面显示数可以自己控制。 数据库操作 在项目发布时为什么报这个错误? 菜鸟的sql问题!!!!!!!!!!! ASP或者PHP转换成JSP 我在tomcat的安装目录的webapps下建了一个目录test1,为什么不能访问? 数据库临时表查询和子查询的区别 传递Checkbox的值??? 简单问题,500分 为什么我的tomcat老是提示找不到包啊??大虾帮忙啊!!!!! 请问jsp大虾:在*.jsp文件中可以有自己独立编写的类吗? 谁有写好的分页程序提供一个...(在线) 在jsp中,如何进行分页设计?
//调用用来显示时间的JavaBean (dates.JspCalendar)
<jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar" />
<%@ page language="java" import="java.sql.*" %>
//调用用来执行数据库操作的JavaBean (test.faq)
<jsp:useBean id="workM" scope="page" class="test.faq" />
//处理中文问题的自定义函数
<%!
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String(temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{
e.printStackTreace();
}
return "null";
}
%>
<%! //自定义的静态函数,作用是:用数字分别来表示商品的种类。
public static String category(int id)
{
try
{
switch(id)
{
case 1:
return "计算机类";
case 2:
return "英语类";
default:
return "其他类";
}
}
catch(Exception e)
{
e.printStackTrace();
}
return "null";
}
%>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=760 align="center">
<TBODY>
<tr><td align="left" height=25>
<% //显示用户名
if(session.getAttribute("username")!=null){
out.println(session.getAttribute("username"));
}
%> 当前位置:<a href="../index.jsp">首页</a> -> 商品分类 </td>
<!—显示时间--><%@ include file="../member/date.inc"%> </tr>
<TR bgColor=#3399ff>
<TD height=1 colspan="2"><IMG height=1 src="images/spacer.gif"
width=16></TD></TR>
<tr><td height=10 colspan="2"><IMG height=1 src="images/spacer.gif"
width=16></td></tr>
</TBODY></TABLE>
<table align="center" border="0" width="760" cellspacing="0" cellpadding="0" height="355">
<tr>
<td width="150" height="355" valign="top"></td>
<td width="10" height="100%"></td>
<td width="1" height="100%" bgcolor="#3399ff"></td>
<td width="10" height="100%"></td>
<td width="589" height="331" valign="top" background="images/bg1.gif">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="62%" height="20" bgcolor="#3399ff"> <font color="#ffffff">标题</font>
</td>
<td width="15%" height="20" bgcolor="#3399ff"> <font color="#ffffff">作者</font>
</td>
<td width="15%" height="20" bgcolor="#3399ff"> <font color="#ffffff">类别</font>
</td>
<td width="8%" height="20" bgcolor="#3399ff"> <font color="#ffffff">特价</font>
</td>
</tr>
<ul>
<%///////////////算出共多少页
int t;
int mtotal;
t=0;
String strSQLsize="SELECT id FROM book where good_price=true";
ResultSet RSsize = workM.executeQuery(strSQLsize);
while(RSsize.next()){
t=t+1;
}
//如果纪录总数除以每页的显示个数,余数大于0,那么
//逻辑页数应该为商+1;
//否则,逻辑页数应为所得的商
//t表示记录的总数
//3表示了每页所显示的个数
//mtotal为逻辑页数
if((t%3)>0){
mtotal=t/3+1;
}else mtotal=t/3;
%>
<%! //定义变量
String pageNo, mTmp;
int i, j, k;
%>
<%
//pageNo表示请求的是第几页
pageNo = request.getParameter("pageNo");
//如果pageNo为null值,则赋值为1
if(pageNo == null){
pageNo = "1";
}
//j表示的是pageNo对应的整型值
j = Integer.parseInt(pageNo);
//当j的值小于1时,赋值为1
if(j < 1)
j = 1;
//当j的值大于总页数时,赋值为mtotal
if(j > mtotal)
j = mtotal;
%>
<% // 读取数据库记录
String strSQL="SELECT * FROM book where good_price=true order by id desc";
ResultSet RSa = workM.executeQuery(strSQL);
//记录集移动到相应的位置
//j为逻辑页数
for(k = 0;k < (j-1)*3;k++)
{
RSa.next();
}
i = 0;
k = 1;
while (RSa.next()) {
i = i + 1;
//超过3条,循环退出
if(i == 4)
{
k = 0;
break;
}
out.print("<tr height='23'><td><li><a href=javascript:show('book.jsp?id=");
out.print(RSa.getInt("id")+"','详细资料',480,500)");
out.print(">"+getStr(RSa.getString("name"))+"</a></td><td>");
out.print(getStr(RSa.getString("author"))+"</td><td>");
out.print( (category(RSa.getInt("category")))+"</td><td>特价</td></tr>");
}
i = i - k;
//关闭记录集
RSa.close();
%>
<%
//以下代码行是用来显示页面数的
//当j大于1时,就会显示“第一页”、“上一页”字样
if(j > 1)
{
%>
<a href="good_price.jsp?pageNo=1">第一页</a>
<%
int ii = Integer.parseInt(pageNo,10);
if(ii > 1)
ii = ii -1;
String ssTmp = Integer.toString(ii);
%>
<a href="good_price.jsp?pageNo=<%=ssTmp%>">上一页</a>
<%
}
//同样地,当j小于总逻辑页数时,就会显示“下一页”、“最后页”字样
if(j < mtotal)
{
int ii = Integer.parseInt(pageNo,10);
if(ii < mtotal)
ii = ii + 1;
String ssTmp = Integer.toString(ii);
%>
<a href="good_price.jsp?pageNo=<%=ssTmp%>">下一页</a>
<a href="good_price.jsp?pageNo=<%=mtotal%>">最后页</a>
<%
}
if(mtotal < j)
j = mtotal;
%>
<tr><td height="1" bgcolor="" colspan="2">
<hr color="#3399ff">
结果共<%=mtotal%>页,显示第<%=j%>页</td>
<td align="left" colspan="2" height="32">
<a href="post.jsp">发布书的信息</a>
</td>
<form name="form2" action="index.jsp" method="post">
<input type="hidden" name="pageNo" value="">
</form>
<script language="javascript">
function sub_page(id)
{
if(id==0)
document.form2.pageNo.value=0;
else if(id==1)
document.form2.pageNo.value=2;
document.form2.submit();
}
</script>
</tr>
</table>
</form>
商品分类:<a href="category.jsp?id=1">计算机类</a> |
<a href="category.jsp?id=2">英语类 </a> |
<a href="category.jsp?id=3">其他类 </a> |
</td> </tr> </table>
<!—尾文件-->
<%@ include file="footer.inc"%>
<%@page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%><!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<SCRIPT LANGUAGE="javascript">
function openwindow()
{
self.location="banjitianjia.jsp";
}</SCRIPT>
<title>班级浏览</title>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</head>
<body bgcolor="#FFFFFF">
<%
if (session.getAttribute("username")==null)
{%>
<script language="javascript">
alert("非法登陆!");
document.location.href="../login.html";
</script>
<%}
String readonly="";
String tmp=(String)session.getAttribute("readonly");
//out.println(tmp);
if (!tmp.equals("n"))
readonly="y";
else
readonly="n";
%>
<form method="post" action="deletebanji.jsp">
<table width="600" border="0" cellspacing="2" cellpadding="1">
<tr bgcolor="#00FF00">
<td>
选择
</td>
<td>
班级
</td>
<td>
年级
</td>
<td>
教室
</td>
<td>
年制
</td>
<td>
专业
</td>
<td>
班主任
</td>
<td>
备注
</td>
<td>
修改
</td>
</tr> <%!int PageSize=10;
int ShowPage=1;
int RowCount=0;
int PageCount=0;%>
<%
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String SConnStr="jdbc:odbc:albumSource";
Class.forName(sDBDriver);
Connection conn=DriverManager.getConnection(SConnStr);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from 班级 ORDER BY grade DESC";
ResultSet rs=stmt.executeQuery(sql);
%>
<%
if(!rs.next())
out.println("没有数据!");
else{
rs.last();
RowCount=rs.getRow();
PageCount=((RowCount%PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1); %>
<% 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);
%> <%
for (int i=1;i<=PageSize;i++)
{
int id=rs.getInt("id");
String banji=rs.getString("grade");
String nianji=rs.getString("class");
String room=rs.getString("classroom");
String nianzhi=rs.getString("nianzhi");
String zhuanye=rs.getString("major");
String banzhuren=rs.getString("cmaster");
String beizu=rs.getString("meno");
%>
<tr bgcolor="#00FF00">
<td>
<INPUT type="checkbox" id=xuanze name=xuanze value=<%=id%>>
</td>
<td>
<%=banji%>
</td>
<td>
<%=nianji%>
</td>
<td>
<%=room%>
</td>
<td>
<%=nianzhi%>
</td>
<td>
<%=zhuanye%>
</td>
<td>
<%=banzhuren%>
</td>
<td>
<%=beizu%>
</td>
<%if (readonly.equals("n"))
{%>
<td>
<a href=banjixiugai.jsp?id=<%=id%>>修改</a>
</td>
<%}%></tr>
<%if(!rs.next())
break;
}
%>
<%
rs.close();
stmt.close();
%>
<tr>
<%if (readonly.equals("n"))
{%>
<td>
<INPUT type="submit" value="删除" id=submit1 name=submit1>
</td>
<td>
<INPUT type="button" value="添加" id=button1 name=button1 onclick="openwindow()">
</td>
<%}%>
</tr>
</table>
</form>
<table width="600" border="0" cellspacing="2" cellpadding="1">
<tr bgcolor="#ffffff">
<td width="400" height="70"><div align="right">共<%=PageCount%>/<font color="#FF0000"><%=ShowPage%></font>页</div></td>
<td width="56"><div align="center">
<%if(ShowPage!=1){%>
<a href=classview.jsp?ToPage=<%=1%>>首页</a>
<%}else{%>
<font color="#CCCCCC">首页</font>
<%}%>
</div></td>
<td width="49"><div align="center">
<%if(ShowPage!=1){%>
<a href=classview.jsp?ToPage=<%=ShowPage-1%>>上页</a>
<%}else{%>
<font color="#CCCCCC">上页</font>
<%}%>
</div></td>
<td width="54"><div align="center">
<%if(ShowPage!=PageCount){%>
<a href=classview.jsp?ToPage=<%=ShowPage+1%>>下页</a>
<%}else{%>
<font color="#CCCCCC">下页</font>
<%}%>
</div></td>
<td width="46"><div align="center">
<%if(ShowPage!=PageCount){%>
<a href=classview.jsp?ToPage=<%=PageCount%>>尾页</a>
<%}else{%>
<font color="#CCCCCC">尾页</font>
<%}%>
</div></td>
<td width="100" valign="bottom"><div align="center">
<table width="99%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <form action=classview.jsp method=post>
<input name=ToPage type="text" value=<%=ShowPage%> size="4">
页</form></td>
</tr>
</table>
</div></td>
</tr>
</table>
<%}%>
</body>
</html>
<%@ page import="java.sql.*"%>
<html>
<body>
<%!
int pagesize=8; //每页显示数目
int pagecount; //总页数
int showpage; //当前页数
%><%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
out.print(e);
}
try{
String key=request.getParameter("id");
if(key==null){
key="";
}
byte d[] =key.getBytes("ISO-8859-1");
key=new String(d);
con=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};dbq=g:\\database\\sun.mdb");
sql=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sql.executeQuery("select * from sa");
rs.last();
int rowcount=rs.getRow();
pagecount=(rowcount%pagesize==0)?(rowcount/pagesize):(rowcount/pagesize+1);%>
<p>总共有<%=rowcount%>条记录</p>
<table border=1>
<tr>
<td width=100>编号</td>
<td width=100>学号</td>
<td width=100>姓名</td>
<td width=100>数学成绩</td>
<td width=100>语文成绩</td>
<td width=100>物理成绩</td>
<td width=100>化学成绩</td>
<td width=100>英语成绩</td>
</tr>
<%
rs.beforeFirst();
String s=request.getParameter("page");
if(s==null){
s="0";
}
try{
showpage=Integer.parseInt(s);
}catch(NumberFormatException e){
out.print(e);
}
if(showpage>=pagecount){
showpage=pagecount;
}
if(showpage<=1){
showpage=1;
}int posion=(showpage-1)*pagesize+1;
rs.absolute(posion);
for(int i=1;i<=pagesize && !rs.isAfterLast();i++){
out.print("<tr>");
for(int k=1;k<9;k++){
out.print("<td>"+rs.getString(k)+"</td>");
}
out.print("</tr>");
rs.next();
}
con.close();
out.print("</table>");
}catch(SQLException e){
out.print(e);
}
for(int i=1;i<=pagecount;i++){
out.print("<a href=king.jsp?page="+i+">"+i+"</a>");
out.print(" ");
}
%>
</body>
</html>
javabean里的源代码
package sql;import java.sql.*;public class operation1 { String sDBDriver = "org.gjt.mm.mysql.Driver";
//String sDBDriver = "com.mysql.jdbc.Driver";
String sConnStr = "jdbc:mysql://localhost:3306/test?user=root;password=pallas";
Connection conn = null;
ResultSet rs = null;
Statement stmt;
int rec_count=0; public operation1() {
try {
Class.forName(sDBDriver);
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("create(): " + e.getMessage());
}
catch(SQLException e){
}
}
public int getcount(ResultSet rs_temp){
try{
while(rs_temp.next()){
rec_count=rec_count+1;
}
}catch(SQLException e){
}
return rec_count;
}
public boolean executeUpdate(String sql){
try{
stmt.executeUpdate(sql);
return true;
}catch(SQLException e){
System.err.println("aq.executeUpdate: " + e.getMessage());
return false;
}
}
public Statement getStatement(){
return stmt;
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs;
}
}jsp里的源代码
<html>
<body>
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<jsp:useBean id="data" class="sql.operation1" scope="page"/>
<%
int pages=0;//当前页码
int pagesize=10;
ResultSet res;
String pages_str=request.getParameter("pages");
if(pages_str==null){
pages_str="0";
}
pages = new Integer(pages_str).intValue();
//使用新建一个变量创建数据。
String bottom,top,sql="";
bottom=String.valueOf(pages*pagesize+1);
top=String.valueOf(pages*pagesize+pagesize);
sql="select * from faq where id>="+bottom+" and id<="+top;
res = data.executeQuery(sql);
String question,answer;
while(res.next()){
question=res.getString(2);
answer=res.getString(3);
out.print("<p>"+question+"<li>"+answer+"<br>");
}
out.print("<p><hr>");
String space=" ";
int total_page;//计算页数与除以10后留下的页数。
sql="select ceiling(count(*)/"+pagesize+") as count1 from faq"; //使用count(*)取得记录集
res=data.executeQuery(sql);
total_page=res.getInt(1);
for(int intloop=0;intloop<total_page;intloop++){
String N_url="<a href=page_show2.jsp?pages="+intloop+">",url1="</a>";
out.print(N_url+(intloop+1)+url1+space);
}
res.close();
%>
</body>
</html>
希望对你有帮助
jsp+javaBeanhttp://www.52free.com/bbs/index.php?act=ST&f=8&t=148&st=0#entry298如果数据库不同只需修改javaBean中的驱动即可,页面显示数可以自己控制。