站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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("