jsp假分頁示例
阿新 • • 發佈:2019-02-09
在web開發過程中,不可避免的需要使用到分頁的功能,jsp分頁一般有真分頁和假分頁。例如mysql:真分頁意思就是用limit查詢語句從後臺檢索出結果集傳回jsp頁面顯示。而假分頁則是後臺傳回所有資料的list集合或者結果集,利用js或者遊標等進行分頁。(假分頁一定程度上給伺服器執行增加了壓力)
下面示例是 利用後臺儲存到session的一個list集合進行假分頁的案例
<%@ page language="java" import="java.util.*,com.entity.*;" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
</head>
<body>
<%
List<User> data=(List<User>)session.getAttribute("user");
int totalNum=data.size();
int pageSize=1;
int currentPage=1;
String num=request.getParameter("page");
if(num!=null){
currentPage=Integer.parseInt(num);
}
if(currentPage<1){
currentPage=1;
}
int totalPage=totalNum/pageSize;
if(totalNum%pageSize!=0){
totalPage++;
}
if(currentPage>totalPage){
currentPage=totalPage;
}
int startNum=(currentPage-1)*pageSize;
int endNum=currentPage*pageSize-1;
if(endNum>=data.size()){
endNum=data.size()-1;
}
%>
<table>
<tr>
<td>firstName</td><td>lastName</td><td>email</td><td></td><td></td>
</tr>
<%for(int i=startNum;i<=endNum;i++){%>
<%
User p=(User)data.get(i);
%>
<tr>
<td><%=p.getFirstName()%></td>
<td><%=p.getLastName()%></td>
<td><%=p.getEmail()%></td>
<td></td>
<td></td>
</tr>
<%}%>
<tr>
<td>當前頁:<%=currentPage%>/總共頁:<%=totalPage%></td>
<td><a href="user/JSP假分頁.jsp?page=1">首頁</a></td>
<td><a href="user/JSP假分頁.jsp?page=<%=currentPage-1%>">上一頁</a></td>
<td><a href="user/JSP假分頁.jsp?page=<%=currentPage+1%>">下一頁</a></td>
<td><a href="user/JSP假分頁.jsp?page=<%=totalPage%>">尾頁</a><br/></td>
</tr>
</table>
</body>
</html>
下面示例是 利用後臺儲存到session的一個list集合進行假分頁的案例
<%@ page language="java" import="java.util.*,com.entity.*;" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
</head>
<body>
<%
List<User> data=(List<User>)session.getAttribute("user");
int totalNum=data.size();
int pageSize=1;
int currentPage=1;
String num=request.getParameter("page");
if(num!=null){
currentPage=Integer.parseInt(num);
}
if(currentPage<1){
currentPage=1;
}
int totalPage=totalNum/pageSize;
if(totalNum%pageSize!=0){
totalPage++;
}
if(currentPage>totalPage){
currentPage=totalPage;
}
int startNum=(currentPage-1)*pageSize;
int endNum=currentPage*pageSize-1;
if(endNum>=data.size()){
endNum=data.size()-1;
}
%>
<table>
<tr>
<td>firstName</td><td>lastName</td><td>email</td><td></td><td></td>
</tr>
<%for(int i=startNum;i<=endNum;i++){%>
<%
User p=(User)data.get(i);
%>
<tr>
<td><%=p.getFirstName()%></td>
<td><%=p.getLastName()%></td>
<td><%=p.getEmail()%></td>
<td></td>
<td></td>
</tr>
<%}%>
<tr>
<td>當前頁:<%=currentPage%>/總共頁:<%=totalPage%></td>
<td><a href="user/JSP假分頁.jsp?page=1">首頁</a></td>
<td><a href="user/JSP假分頁.jsp?page=<%=currentPage-1%>">上一頁</a></td>
<td><a href="user/JSP假分頁.jsp?page=<%=currentPage+1%>">下一頁</a></td>
<td><a href="user/JSP假分頁.jsp?page=<%=totalPage%>">尾頁</a><br/></td>
</tr>
</table>
</body>
</html>