<%@ page language="java" import="java.util.*"
contentType="text/html;charset=gbk"%>
<%@ page import="java.sql.*"%><html>
<head>
<title>show.jsp</title>
</head> <body>
<jsp:useBean id="dbcn" class="connect.DataBaseConnect" scope="page" /> //bean实例,不分页能够查询数据库 <%
int rowsNum=0;//总行数
int pageCount=0;//总页数
int pageSize=3;//每页显示记录数
int pageNo=1;//显示第几页
Statement sql = null;
ResultSet rs = null;
sql = dbcn.getConn().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = sql.executeQuery("select *from address");
rs.last();//移到最后一行
rowsNum = rs.getRow();//得到总行数
pageCount = (rowsNum%pageSize)==0?(rowsNum/pageSize):(rowsNum/pageSize+1);//得到总页数
String strPageNo = request.getParameter("pageNo");
if(strPageNo==null){
strPageNo="1";
}
pageNo = Integer.parseInt(strPageNo);//从客户得到要显示的第几页
if(pageNo<=0){
pageNo=1;
}
int rsprint = (pageNo-1)*pageSize+1;//将指针移到显示页面记录的第一行
rs.absolute(rsprint);
out.print("<table border='1' align='center'>");
out.print("<tr><td>编号</td>");
out.print("<td>姓名</td>");
out.print("<td>年龄</td>");
out.print("<td>电子邮件</td>");
out.print("<td>住址</td></tr>"); for(int i=1;i<=pageSize;i++) {
out.print("<tr><td>" + rs.getString(1) + "</td>");
out.print("<td>" + rs.getString(3) + "</td>");
out.print("<td>" + rs.getLong(4) + "</td>");
out.print("<td>" + rs.getString(5) + "</td>");
out.print("<td>" + rs.getString(6) + "</td></tr>");
rs.next();
}
out.print("</table>"); dbcn.closeConn();
%>
<form action="" method="post">
<input type="text" name="pageNo">
<input type="submit" value="go">
</form>
</body>
</html>报错:exception org.apache.jasper.JasperException: An exception occurred processing JSP page /show.jsp at line 2118: ResultSet rs = null;
19:
20: sql = dbcn.getConn().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
21: rs = sql.executeQuery("select *from address");
22:
23: rs.last();//移到最后一行
24: rowsNum = rs.getRow();//得到总行数
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
contentType="text/html;charset=gbk"%>
<%@ page import="java.sql.*"%><html>
<head>
<title>show.jsp</title>
</head> <body>
<jsp:useBean id="dbcn" class="connect.DataBaseConnect" scope="page" /> //bean实例,不分页能够查询数据库 <%
int rowsNum=0;//总行数
int pageCount=0;//总页数
int pageSize=3;//每页显示记录数
int pageNo=1;//显示第几页
Statement sql = null;
ResultSet rs = null;
sql = dbcn.getConn().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = sql.executeQuery("select *from address");
rs.last();//移到最后一行
rowsNum = rs.getRow();//得到总行数
pageCount = (rowsNum%pageSize)==0?(rowsNum/pageSize):(rowsNum/pageSize+1);//得到总页数
String strPageNo = request.getParameter("pageNo");
if(strPageNo==null){
strPageNo="1";
}
pageNo = Integer.parseInt(strPageNo);//从客户得到要显示的第几页
if(pageNo<=0){
pageNo=1;
}
int rsprint = (pageNo-1)*pageSize+1;//将指针移到显示页面记录的第一行
rs.absolute(rsprint);
out.print("<table border='1' align='center'>");
out.print("<tr><td>编号</td>");
out.print("<td>姓名</td>");
out.print("<td>年龄</td>");
out.print("<td>电子邮件</td>");
out.print("<td>住址</td></tr>"); for(int i=1;i<=pageSize;i++) {
out.print("<tr><td>" + rs.getString(1) + "</td>");
out.print("<td>" + rs.getString(3) + "</td>");
out.print("<td>" + rs.getLong(4) + "</td>");
out.print("<td>" + rs.getString(5) + "</td>");
out.print("<td>" + rs.getString(6) + "</td></tr>");
rs.next();
}
out.print("</table>"); dbcn.closeConn();
%>
<form action="" method="post">
<input type="text" name="pageNo">
<input type="submit" value="go">
</form>
</body>
</html>报错:exception org.apache.jasper.JasperException: An exception occurred processing JSP page /show.jsp at line 2118: ResultSet rs = null;
19:
20: sql = dbcn.getConn().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
21: rs = sql.executeQuery("select *from address");
22:
23: rs.last();//移到最后一行
24: rowsNum = rs.getRow();//得到总行数
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
再用jsp显示数据
rs = sql.executeQuery("select * from address");
不过你一次把address的信息全查出来了 这是JSP前台分页? 这效率~~
是这个问题,我已经解决。 我也是刚学的,不知道模块分析,求教:提高效率还有一个问题:加上这个之后。点下一页和go
不能显示不足pageSize条记录的页面,有报错请问应该怎么改一下 <form action="" method="post">
<a href="show.jsp?pageNo=<%=pageNo-1 %>">上一页</a>
<a href="show.jsp?pageNo=<%=pageNo+1 %>">下一页</a>
第<input type="text" size="10" name="pageNo" value=<%=pageNo%>>页
<input type="submit" value="go">
</form>
你把循环的那个pageSize设成个变量,在前面查一下rs结果集的条数。用这个条数作为for循环pageSize。
用个if语句判断一下,rs的条数是否满足pagesize,满足则使用pagesize,如果不满足用这个条数,再试试
。
这种语句我怕了他,数据过万,速度就很慢了
<%
int pageNow = Integer.parseInt(request.getAttribute("pageNow").toString());
int pageCount = Integer.parseInt(request.getAttribute("pageCount").toString());
String rootpath6 = "E:bzjh";
if (pageNow != 1) {out.println("<a href=moreFileUpload.do?method=list&rootPath6="
+ rootpath6
+ "&pageNow="
+ (pageNow - 1)
+ ">上一页</a>");
}
for (int i = 1; i <= pageCount; i++) {out.println("<a href=moreFileUpload.do?method=list&rootPath6="
+ rootpath6
+ "&pageNow="
+ i
+ ">["
+ i
+ "]</a>");
}
if (pageNow != pageCount) {out.println("<a href=moreFileUpload.do?method=list&rootPath6="
+ rootpath6
+ "&pageNow="
+ (pageNow + 1)
+ ">下一页</a>");
}
%>
建议你使用xpager,这么经典的回复居然引不起你的注意。