工程目錄結構:

1、分頁可以使資料庫表中的資料以表的形式顯示出來,每頁展示限制的數量,直覺明了。
2、分頁查詢語句mysql為:select *from users limit ?,?;
第一個參數為從第一頁開始跳過的條數,第二個參數為每頁顯示的條數
注:跳過的條數=(總頁數-1)/每頁的條數;
假設每頁顯示3條:Integer num=(total-1)/3;
ps.setInt(1,num);
ps.setInt(2,3);
轉存失敗重新上傳取消
3.持久層,在Dao包中寫一個分頁查詢的方法UserDao,根據傳入的總頁數來進行查詢,存放到一個users數組裡面
代碼如下:
public List<User> findAllPage(Integer total){
//數組
List<User> users=new ArrayList<User>();
//擷取連接配接
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
conn=DBUtils.getIntance();
String sql="select *from users limit ?,?";
ps=conn.preparedStatement(sql);
Integer num=(total-1)*3;//3表示每頁顯示三條資料
ps.setInt(1,num);
ps.setInt(2,3);
rs=ps.executeQuery();
while(rs.hasNext()){
User user=new User();
int id=rs.getInt("id");
String un=rs.getString("username");
String pw=rs.getString("password");
String email=rs.getString("email");
user.setId(id);
user.setUsername(un);
user.setPassword(pwd);
user.setEmail(em);
users.add(user);
}
}catch(Exception e){
}
//System.out.println("users:"+users);
//将使用者傳回
return users;
}
4、控制層,在ActionServlet裡面來處理請求
1)擷取到使用者表的總條數,通過查詢使用者表所有記錄,調用size()方法即可擷取大小。
2)擷取到jsp頁面傳過來的第幾頁
3)調用Dao包下的findAllPage()方法
4)将第幾頁和總頁數放入到request對象裡面,一同轉發給listUsers.jsp
代碼如下:
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//處理分頁請求
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf8");
UserDAO dao=new UserDAO();
int page=Integer.parseInt(request.getParameter("page"));
List<User> users=dao.findAllPage(page);
List<User> allUsers=dao.findAllUser();
int size=allUsers.size();//資料總條數
//下一頁就是page+1,
System.out.println();
int total=size/3;//總頁數
request.setAttribute("total", total);
request.setAttribute("page", page);
System.out.println(users.size());
request.setAttribute("users", users);
request.getRequestDispatcher("/myweb/listUsers.jsp").forward(request, response);
}
5、listUsers.jsp頁面用來展示顯現出來的清單,點選下一頁
代碼如下:
<%
Integer page1=(Integer)request.getAttribute("page");
if(page1==null){
page1=1;
request.setAttribute("page", page1);
}else if(page1>=(Integer)request.getAttribute("total")){
//跳轉到第一頁
request.setAttribute("page", 0);
}
%>
<a href="<%=request.getContextPath()%>/action?page=1" target="_blank" rel="external nofollow" >首頁</a>
<a href="<%=request.getContextPath()%>/action?page=<%= (Integer)request.getAttribute(" target="_blank" rel="external nofollow" page")+1%>">下一頁</a>
注:此處到最後一頁,繼續點選下一頁會跳轉至首頁。
效果圖如下: