导读:
做一个搜索引擎就要像个样子,做的专业一些才好,因此在分页处理时也采用类似百度和google的分页方式。
对于结果集的处理,大家各有办法,总结起来就是缓存和重新查询两种方式,lucene推荐第二种,如果使用缓存的方式感觉控制资源的释放比较困难,在并发性较多的情况下系统可能资源耗尽,因此我们这里采用lucene推荐的做法实现类似百度和google的分页效果。
终于调试通过了,大家可以直接使用了,哪里不清楚可以给我留言。
<%@ page contentType="text/html; charset=gb2312" buffer="none"%>
<%@ page import="java.util.*"%>
<%
//初始化全局变量
int totalNum = 0; //总共记录条数
int numPerPage = 0; //每页显示记录条数
int maxPageNum = 0; //本次搜索最大页数
int curPage = 1; //当前页
int startLocation = 0; //起始位置
Vector searchresult = (Vector) session.getAttribute("searchresult");
numPerPage = ((Integer)session.getAttribute("setPageNum")).intValue();
totalNum = searchresult.size();
maxPageNum=((totalNum%numPerPage) == 0)?totalNum/numPerPage:(totalNum/numPerPage+1);
curPage=startLocation/numPerPage + 1;
%> //初始化全局变量
int totalNum = 0; //总共记录条数
int numPerPage = 0; //每页显示记录条数
int maxPageNum = 0; //本次搜索最大页数
int curPage = 1; //当前页
int startLocation = 0; //起始位置
Vector searchresult = (Vector) session.getAttribute("searchresult");
numPerPage = ((Integer)session.getAttribute("setPageNum")).intValue();
totalNum = searchresult.size();
maxPageNum=((totalNum%numPerPage) == 0)?totalNum/numPerPage:(totalNum/numPerPage+1);
curPage=startLocation/numPerPage + 1;
%>
查询结果页面
<%
if(request.getParameter("startLocation")!=null)
{
startLocation = Integer.parseInt(request.getParameter("startLocation")); //取当前页码
System.out.println("startLocation ="+startLocation);
curPage = ((startLocation%numPerPage) == 0)?(startLocation/numPerPage):(startLocation/numPerPage+1);
curPage=curPage+1;
System.out.println("curPage ="+curPage);
}
%>
if(request.getParameter("startLocation")!=null)
{
startLocation = Integer.parseInt(request.getParameter("startLocation")); //取当前页码
System.out.println("startLocation ="+startLocation);
curPage = ((startLocation%numPerPage) == 0)?(startLocation/numPerPage):(startLocation/numPerPage+1);
curPage=curPage+1;
System.out.println("curPage ="+curPage);
}
%>
本文转自
http://hi.baidu.com/51project/blog/item/52708ad3ad4f1630970a16a7.html
做一个搜索引擎就要像个样子,做的专业一些才好,因此在分页处理时也采用类似百度和google的分页方式。
对于结果集的处理,大家各有办法,总结起来就是缓存和重新查询两种方式,lucene推荐第二种,如果使用缓存的方式感觉控制资源的释放比较困难,在并发性较多的情况下系统可能资源耗尽,因此我们这里采用lucene推荐的做法实现类似百度和google的分页效果。
终于调试通过了,大家可以直接使用了,哪里不清楚可以给我留言。
<%@ page contentType="text/html; charset=gb2312" buffer="none"%>
<%@ page import="java.util.*"%>
<%
//初始化全局变量
int totalNum = 0; //总共记录条数
int numPerPage = 0; //每页显示记录条数
int maxPageNum = 0; //本次搜索最大页数
int curPage = 1; //当前页
int startLocation = 0; //起始位置
Vector searchresult = (Vector) session.getAttribute("searchresult");
numPerPage = ((Integer)session.getAttribute("setPageNum")).intValue();
totalNum = searchresult.size();
maxPageNum=((totalNum%numPerPage) == 0)?totalNum/numPerPage:(totalNum/numPerPage+1);
curPage=startLocation/numPerPage + 1;
%> //初始化全局变量
int totalNum = 0; //总共记录条数
int numPerPage = 0; //每页显示记录条数
int maxPageNum = 0; //本次搜索最大页数
int curPage = 1; //当前页
int startLocation = 0; //起始位置
Vector searchresult = (Vector) session.getAttribute("searchresult");
numPerPage = ((Integer)session.getAttribute("setPageNum")).intValue();
totalNum = searchresult.size();
maxPageNum=((totalNum%numPerPage) == 0)?totalNum/numPerPage:(totalNum/numPerPage+1);
curPage=startLocation/numPerPage + 1;
%>
<%
if(request.getParameter("startLocation")!=null)
{
startLocation = Integer.parseInt(request.getParameter("startLocation")); //取当前页码
System.out.println("startLocation ="+startLocation);
curPage = ((startLocation%numPerPage) == 0)?(startLocation/numPerPage):(startLocation/numPerPage+1);
curPage=curPage+1;
System.out.println("curPage ="+curPage);
}
%>
if(request.getParameter("startLocation")!=null)
{
startLocation = Integer.parseInt(request.getParameter("startLocation")); //取当前页码
System.out.println("startLocation ="+startLocation);
curPage = ((startLocation%numPerPage) == 0)?(startLocation/numPerPage):(startLocation/numPerPage+1);
curPage=curPage+1;
System.out.println("curPage ="+curPage);
}
%>
本文转自
http://hi.baidu.com/51project/blog/item/52708ad3ad4f1630970a16a7.html