分页,用到了两个request,但是只能显示第一页的
程序如下
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<body bgcolor="#FFF8DF">
<center>
<%
int pagesize=2;//每页要显示的记录数
int recordcount=0;//记录总数
int pagecount=0;//总页数
int pageid=1;//待要显示的页码
try{
Connection con;
Statement stmt;
ResultSet rs;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
java.sql.DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
String dbUrl= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testdb";
String dbUser="sa";
String dbPwd="thjkl800216";
con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//stmt=con.createStatement();
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);//创建一个滚动的只读sql对象
String city=request.getParameter("cityname");
//第一个request
city=new String(city.getBytes("ISO-8859-1"),"GBK");
rs=stmt.executeQuery("Select title,describe,cityname,depart,author,pdate from xinxi_table where cityname='"+city+"' order by id desc");
%>
<%=city%>市林业信息上报汇总
<%
rs.last();
recordcount=rs.getRow();//获得记录总数
pagecount=(recordcount%pagesize==0)?(recordcount/pagesize):((recordcount/pagesize)+1);//取的总的页面数
int count=1;
String strpage=request.getParameter("pageid");
//第2个request
if(strpage==null) pageid=1;
else
pageid=Integer.parseInt(strpage);//将得到的数转换为整型
if(pageid>recordcount) pageid=recordcount;
if(recordcount>0){
int j=(pageid-1)*pagesize;
if(j==0)
rs.beforeFirst();
else
rs.absolute(j);
}
int i=0;
%>
<%
while (rs.next()&&count<=pagesize)
{
count++;
i++;
String col1=rs.getString(1);
String col2=rs.getString(2);
String col3=rs.getString(3);
String col4=rs.getString(4);
String col5=rs.getString(5);
String col6=rs.getString(6);
out.println("<table border=1 width=500>"+"<tr><td width=80>标 题:"+"</td><td>"+col1+"</td></tr><tr><td>内 容:"+"</td><td>"+col2+"</td></tr><tr><td>上报地区:"+"</td><td>"+col3+"</td></tr><tr><td>上报单位:"+"</td><td>"+col4+"</td></tr><tr><td>上报人:"+"</td><td>"+col5+"</td></tr><tr><td>上报时间:"+"</td><td>"+col6+"</td></tr>");
out.println("</table>");
out.println("<br>");
}
out.print("共");
out.print(pagecount);
out.print("页");
out.print("共");
out.print(recordcount);
out.print("条");
out.print("第");
out.print(pageid);
out.print("页");
// out.print("<br>");
if(pageid<pagecount)
{
out.print("<a href=xinxixianshigo.jsp?pageid=");
out.print(pageid+1);
out.print(">下一页</a>");
}
if(pageid>1){
out.print("<a href=xinxixianshigo.jsp?pageid=");
out.print(pageid-1);
out.print(">上一页</a>");}
out.print("<br>");
for(int j=1;j<=pagecount;j++){
out.print("<a href=xinxixianshigo.jsp?pageid=");
out.print(j);
out.print(">");
out.print(j);
out.print("</a>");}
rs.close();
stmt.close();
con.close();
}
catch(Exception e){out.println(e.getMessage());}
%>
<hr>
<a href="xinxixianshi.jsp">返回</a>
</center>
</body>
程序大致是这样的,从前面页面中得到一个值,根据这个值来查询数据库,然后分页。当中用到了两个request.getParameter();程序执行后,只能显示第一页的数据,第2页的数据是null。但是显示出来的所有的记录数是正确的,所以访问数据库的时候是没有错误的。我想大概是两个request传值引起了冲突。请问该怎么解决。