10.分页案例
页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.java53.com/core" prefix="my"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
table,td,th{
border: 1px solid red;
}
table{
width: 700px;
margin: 60px auto;
}
</style>
</head>
<body>
<!-- ${uis } -->
<table>
<tr>
<th>用户编号</th>
<th>用户名</th>
<th>用户密码</th>
<th>用户地址</th>
<th>用户电话号码</th>
</tr>
<my:showListObject list="${uis }" var="ui">
<tr>
<td>${ui.userId}</td>
<td>${ui.userUne}</td>
<td>${ui.userPwd}</td>
<td>${ui.userAddress}</td>
<td>${ui.userPhoneNumber}</td>
</tr>
</my:showListObject>
<tr>
<td colspan="5" align="center">
<a href="user?pageNo=1">首页</a>
<a href="user?pageNo=${requestScope.pageNo>1?requestScope.pageNo-1:1 }">上一页</a>
<a href="user?pageNo=${pageNo<maxPageNo?pageNo+1:maxPageNo }">下一页</a>
<a href="user?pageNo=${requestScope.maxPageNo }">尾页</a>
</td>
</tr>
</table>
</body>
</html>
导包
controller
package com.zuxia.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zuxia.entity.UserInfo;
import com.zuxia.repository.UserInfoDao;
@WebServlet("/user")
public class UserInfoServlet extends HttpServlet {
private UserInfoDao uid = new UserInfoDao();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int pageNo = 1;
if(request.getParameter("pageNo")!=null) {
pageNo = Integer.parseInt(request.getParameter("pageNo"));
}
List<UserInfo> uis = uid.selectUserInfoByPager(pageNo);
request.setAttribute("uis", uis);
request.setAttribute("pageNo", pageNo);
request.setAttribute("maxPageNo", (uid.selectUserInfoCount()+2)/3);
request.getRequestDispatcher("page02.jsp").forward(request, response);
}
}
entity
package com.zuxia.entity;
public class UserInfo {
private Integer userId;
private String userUne;
private String userPwd;
private String userAddress;
private String userPhoneNumber;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserUne() {
return userUne;
}
public void setUserUne(String userUne) {
this.userUne = userUne;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
public String getUserPhoneNumber() {
return userPhoneNumber;
}
public void setUserPhoneNumber(String userPhoneNumber) {
this.userPhoneNumber = userPhoneNumber;
}
public UserInfo() {
super();
}
public UserInfo(Integer userId, String userUne, String userPwd, String userAddress, String userPhoneNumber) {
super();
this.userId = userId;
this.userUne = userUne;
this.userPwd = userPwd;
this.userAddress = userAddress;
this.userPhoneNumber = userPhoneNumber;
}
@Override
public String toString() {
return "UserInfo [userId=" + userId + ", userUne=" + userUne + ", userPwd=" + userPwd + ", userAddress="
+ userAddress + ", userPhoneNumber=" + userPhoneNumber + "]";
}
}
repository
package com.zuxia.repository;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.zuxia.entity.UserInfo;
public class UserInfoDao {
public List<UserInfo> selectUserInfoByPager(int pageNumber){
Connection conn = null;
PreparedStatement pst = null;
ResultSet res = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:///user_db?characterEncoding=UTF-8", "root", "123456");
pst = conn.prepareStatement(" SELECT * FROM user_info LIMIT "+(pageNumber-1)*3+",3 ");
res = pst.executeQuery();
List<UserInfo> users = new ArrayList<UserInfo>();
while(res.next()) {
UserInfo ui = new UserInfo(
res.getInt(1),
res.getString(2),
res.getString(3),
res.getString(4),
res.getString(5));
users.add(ui);
}
return users;
} catch (ClassNotFoundException e) {
System.out.println(" LOAD RIVER CLASS ERROR! ");
} catch (SQLException e) {
System.out.println(" GET CONNECTION ERROR! ");
}finally {
try {
if(res!=null) {
res.close();
}
if(pst!=null) {
pst.close();
}
if(conn!=null) {
conn.close();
}
} catch (SQLException e) {
}
}
return null;
}
public int selectUserInfoCount(){
Connection conn = null;
PreparedStatement pst = null;
ResultSet res = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:///user_db?characterEncoding=UTF-8", "root", "123456");
pst = conn.prepareStatement(" SELECT COUNT(*) FROM user_info ");
res = pst.executeQuery();
if(res.next()) {
return res.getInt(1);
}
} catch (ClassNotFoundException e) {
System.out.println(" LOAD RIVER CLASS ERROR! ");
} catch (SQLException e) {
System.out.println(" GET CONNECTION ERROR! ");
}finally {
try {
if(res!=null) {
res.close();
}
if(pst!=null) {
pst.close();
}
if(conn!=null) {
conn.close();
}
} catch (SQLException e) {
}
}
return 0;
}
}