第一次发帖,请大家帮帮忙啊!
有个紧急需要处理的问题——jsp分页,我从mysql数据库中查询出了20条数据,然后想每页显示5条,实现“上一页、下一页、末页”的跳转,现在我已经做到了第一步te.jsp页面,实现效果:
现在要解决的问题就是怎么让点了 “下一页、末页” 后能跳到PageView.jsp,并显示接下来的6-10条的数据库信息。
下面给出te.jsp 的完整代码,麻烦大家看看,教教我怎么写PageView.jsp这个页面,谢谢了。
te.jsp::
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<center>
<%
//加载驱动程序
Class.forName("org.gjt.mm.mysql.Driver").newInstance();//这里的数据库名,密码自己注意改一下吧
String url ="jdbc:mysql://localhost:3306/test?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
Connection conn=DriverManager.getConnection(url);
//建立连接
//Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //创建一个可以滚动的只读的SQL语句对象
Statement stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//创建语句对象
String sql="select * from man where name like '%e%'";
ResultSet rs=stmt.executeQuery(sql);
int n;int intPageSize; //一页显示的记录数
int intRowCount; //搜索出的记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage;
int i;
intPageSize=5; //设置一页显示的记录数
strPage = request.getParameter("page");//取得待显示页码
if(strPage==null){ //表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{ //将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}
rs.last(); //获取记录总数
intRowCount=rs.getRow();
intPageCount=(intRowCount+intPageSize-1)/intPageSize; //记算总页数
//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((intPage-1) * intPageSize + 1);
//显示数据
i= 0;
String newsid=null;
while(i<intPageSize && !rs.isAfterLast())
{
newsid=rs.getString(1);
//插入显示序号
out.print(i+1);
%> :
xingming-><%=newsid%>
<% newsid=rs.getString(2); %>
age-><%=newsid%>
<br>
<%
rs.next();
i++;
}
}
%>
<form id="form1" name="form1" method="post">
第<%=intPage%>页 共<%=intPageCount%>页
<%if(intPage<intPageCount){%><a href="PageView.jsp?page=<%=intPage+1%>"> <input type="hidden" name="nextpg" value="<%=intPage+1%>"/>下一页 </a><%}%>
<%if(intPage!=intPageCount){%><a href="PageView.jsp?page=<%=intPageCount%>"> 末页</a><%}%>
<%if(intPage>1){%><a href="PageView.jsp?page=<%=intPage-1%>">上一页</a><br><%} %>
</form>
<br><br><br><%
rs=stmt.executeQuery(sql);for(n=0;rs.next();n++){
out.print(n+1); %>
->
name:<%=rs.getString(1)%>
age:<%=rs.getString(2)%> <br>
<%}%>
<%out.print("数据库检索完成,共有"+n+"条数据符合条件。");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
有个紧急需要处理的问题——jsp分页,我从mysql数据库中查询出了20条数据,然后想每页显示5条,实现“上一页、下一页、末页”的跳转,现在我已经做到了第一步te.jsp页面,实现效果:
现在要解决的问题就是怎么让点了 “下一页、末页” 后能跳到PageView.jsp,并显示接下来的6-10条的数据库信息。
下面给出te.jsp 的完整代码,麻烦大家看看,教教我怎么写PageView.jsp这个页面,谢谢了。
te.jsp::
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<center>
<%
//加载驱动程序
Class.forName("org.gjt.mm.mysql.Driver").newInstance();//这里的数据库名,密码自己注意改一下吧
String url ="jdbc:mysql://localhost:3306/test?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
Connection conn=DriverManager.getConnection(url);
//建立连接
//Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //创建一个可以滚动的只读的SQL语句对象
Statement stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//创建语句对象
String sql="select * from man where name like '%e%'";
ResultSet rs=stmt.executeQuery(sql);
int n;int intPageSize; //一页显示的记录数
int intRowCount; //搜索出的记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage;
int i;
intPageSize=5; //设置一页显示的记录数
strPage = request.getParameter("page");//取得待显示页码
if(strPage==null){ //表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{ //将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}
rs.last(); //获取记录总数
intRowCount=rs.getRow();
intPageCount=(intRowCount+intPageSize-1)/intPageSize; //记算总页数
//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((intPage-1) * intPageSize + 1);
//显示数据
i= 0;
String newsid=null;
while(i<intPageSize && !rs.isAfterLast())
{
newsid=rs.getString(1);
//插入显示序号
out.print(i+1);
%> :
xingming-><%=newsid%>
<% newsid=rs.getString(2); %>
age-><%=newsid%>
<br>
<%
rs.next();
i++;
}
}
%>
<form id="form1" name="form1" method="post">
第<%=intPage%>页 共<%=intPageCount%>页
<%if(intPage<intPageCount){%><a href="PageView.jsp?page=<%=intPage+1%>"> <input type="hidden" name="nextpg" value="<%=intPage+1%>"/>下一页 </a><%}%>
<%if(intPage!=intPageCount){%><a href="PageView.jsp?page=<%=intPageCount%>"> 末页</a><%}%>
<%if(intPage>1){%><a href="PageView.jsp?page=<%=intPage-1%>">上一页</a><br><%} %>
</form>
<br><br><br><%
rs=stmt.executeQuery(sql);for(n=0;rs.next();n++){
out.print(n+1); %>
->
name:<%=rs.getString(1)%>
age:<%=rs.getString(2)%> <br>
<%}%>
<%out.print("数据库检索完成,共有"+n+"条数据符合条件。");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
第 <%=intPage%>页 共 <%=intPageCount%>页
<%if(intPage <intPageCount){%> <a href="te.jsp?page= <%=intPage+1%>"> <input type="hidden" name="nextpg" value=" <%=intPage+1%>"/>下一页 </a> <%}%>
<%if(intPage!=intPageCount){%> <a href="te.jsp?page= <%=intPageCount%>"> 末页 </a> <%}%>
<%if(intPage>1){%> <a href="te.jsp?page= <%=intPage-1%>">上一页 </a> <br> <%} %>
<br> <br> <br> <%
rs=stmt.executeQuery(sql); for(n=0;rs.next();n++){
out.print(n+1); %>
->
name: <%=rs.getString(1)%>
age: <%=rs.getString(2)%> <br>
<%}%> 前面就直接使用String strPage = request.getParameter("page");
我没有具体看你的代码。。你看行不行,我像这样是可以的,一般的分页都是这么实现的。我想应该没有问题。