当前页面: 开发资料首页 → JSP 专题 → 求jsp跳页的代码
求jsp跳页的代码
摘要: 求jsp跳页的代码
我从数据库中查询出一些记录,需要跳页查看的功能
哪位高手帮忙指导下
传递两个参数,一个跳转到的页数,一个每页显示的记录数
计算该页的记录的范围,取数据
如:跳转至第8页,每页显示10条记录的话,那么就取71~80条记录
至于sql语句怎么写,应该不是问题
sql语句
select top "+page_record+" * from tablename where id not in (select top "+(curpage*page_record)+" id from tablename order by id ) order by id
其中curpage是要查看的当前也面,page_record是每页显示的条数
你把这两个参数传过来就可以了
给你一个通用函数
<%!
public List executeQuery(String sql,String[] cols,Connection conn,int pageSize,int nPage) throws SQLException
{
Statement stmt=null;
ResultSet rs=null;
ArrayList AL=new ArrayList();
ArrayList returnList=new ArrayList();
int size=cols.length;
try
{
try
{
stmt=conn.createStatement();
try
{
rs=stmt.executeQuery(sql);
while(rs.next())
{
String[] str=new String[size];
for(int i=0;i
{
str[i]=rs.getString(cols[i]);
}
AL.add(str);
}
}
finally
{
rs.close();
rs=null;
}
}
finally
{
stmt.close();
stmt=null;
}
}
finally
{
//conn.close();
//conn=null;
}
int maxSize = AL.size();
System.out.println("Exception:maxSize:"+maxSize);
int startIndex=(nPage-1)*pageSize;
int endIndex=startIndex+pageSize;
if(startIndex<0)
startIndex=0;
if(endIndex>maxSize)
endIndex= maxSize;
return(AL.subList(startIndex,endIndex));
}
%>
String sql,String[] cols,Connection conn,int pageSize,int nPage
参数解释:
sql:sql语言
cols:要查询的字段,数组类型
conn:Connection对象,注意用完后要关闭,为了一个conn对象在同一页面能被重用,所以方法体中没有关闭
pageSize:指一页显示多少条记录。
nPage:指当前是第几页。
方法返回的List中每个元素都是字符串数组类型,每个数组元素与字段的对应关系与cols中定义的顺序一样。
先收藏,再学习
这是我以前做测试的分页代码,改一下可以通用.
package test.pages;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class PageServlet extends HttpServlet
{
Connection conn;
Statement stmt;
ResultSet rs;
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException
{
int pages=0;//当前页面
int i=0;//记数器
int start;//每页起始条目
int row=10;//每页显示10条纪录
int pa;//总页数
int count;//总纪录数
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:pagesdata");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("select * from table2 order by id desc");
String strp=request.getParameter("pages");
HttpSession session=request.getSession(true);
String name_1=(String)session.getAttribute("hoho");
int sig=1,alt;
if(strp==null)
sig=1;
else
{
for (int i1 = 0; i1
{
alt=strp.charAt(i1);
if(alt<48||alt>57)
{
sig=1;
break;
}
else
{
sig=2;
}
}
}
if(sig==1)
pages=1;
else
pages=Integer.parseInt(strp);
rs.last();
count=rs.getRow();
pa=count/row;
int lastpages;
if(count%row>0)
{
pa=pa+1;
lastpages=count%row;
}
else
lastpages=pa;
if(pages<1)
pages=1;
if(pages>pa)
pages=pa;
start=(pages-1)*row+1;
response.setContentType("text/html;charset=GBK");
PrintWriter out=response.getWriter();
out.println(" HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>");
out.println("");
out.println("<head>");
out.println("
");
out.println("
留言板");
out.println("