JSP页面
<table class="result-tab" width="100%">
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>email</th>
<th>手机</th>
<th>操作</th>
</tr>
<c:forEach var="u" items="${userList}" >
<tr>
<td class="tc"><input name="id[]" value="${u.user_id}" type="checkbox"></td>
<td>${u.user_id}</td>
<td>${u.user_name}</td>
<td>${u.user_sex=='F'?'男':'女'}</td>
<td>${u.user_email}</td>
<td>${u.user_mobile}</td>
</tr>
</c:forEach>
</table>
<div class="list-page">
共${psum}条记录,当前${npage}/${cpage}页
<a href="admin_douserselect?np=1${search}">首页</a>
<a href="admin_douserselect?np=${npage-1<1?1:npage-1}${search}">上一页</a>
<a href="admin_douserselect?np=${npage+1>cpage?cpage:npage+1}${search}">下一页</a>
<a href="admin_douserselect?np=${cpage}${search}">尾页</a>
</div>
servlet类
package servlet;
import java.io.IOException;
import java.util.ArrayList;
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 dao.UserDao;
import pojo.Shop_user;
@WebServlet("/manager/admin_douserselect")
public class DoUserSelect extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String search = request.getParameter("search");
/**此处如果出现乱码在tomcat安装路径的conf/server.xml中添加
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8" />
**/
int npage = 1;//当前页
String npg = request.getParameter("npage");
if(npg!=null&&npg!="") {
npage =Integer.parseInt(npg);
}
int count = 5;//每页显示条数
String np = request.getParameter("np");
if(np!=null) {
npage = Integer.parseInt(np);
}
int[] arr = UserDao.selectCount(count);
ArrayList<Shop_user> list = (ArrayList<Shop_user>) UserDao.selectToPage(npage, count);
request.setAttribute("userList", list);
request.setAttribute("psum", arr[0]);//总记录数
request.setAttribute("cpage", arr[1]);//共几页
request.setAttribute("npage", npage);//当前第几页
request.getRequestDispatcher("admin_user.jsp").forward(request, response);
}
}
DAO
static QueryRunner qr = new QueryRunner();
public static int[] selectCount(int cpage) {//每页显示几条数据
int[] arr = new int[2];
String sql = "select count(*) from shop_user";
Connection conn = DBMananger.getConn();
int count = 0;//总记录数
int page = 0;//共几页
try {
count = qr.query(conn,sql,new ScalarHandler<Long>()).intValue();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(count%cpage==0) {
page = (int) (count/cpage);
}else {
page = (int) (count/cpage)+1;
}
arr[0] = count;
arr[1] = page;
return arr;
}
public static ArrayList<Shop_user> selectToPage(int npage,int count){
//第几页 每页显示几条数据
String sql = "select * from shop_user limit ?,?";
Connection conn = DBMananger.getConn();
ArrayList<Shop_user> list = new ArrayList<Shop_user>();
try {
list = (ArrayList<Shop_user>) qr.query(conn,sql, new BeanListHandler<Shop_user>(Shop_user.class),(npage-1)*5,count);
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
实体类
public class Shop_user {
private String user_id;
private String user_name;
private String user_password;
private String user_sex;
private String user_birthday;
private String user_idenityl;
private String user_email;
private String user_mobile;
private String user_adress;
private int user_status;
public Shop_user() {
}
}
总结:
明确参数:每页显示几条数据
前端访问servlet如果没有页数参数,默认为1,显示n条数据
sql语句 select * from table limit 1,n ;
使用取模得到
if(总数据%每页显示数据==0)
{总页数 = 总数据/每页显示数据 }
else
{总页数 = 总数据/每页显示数据 + 0 }
当点击首页 limit 1,n;
当点击下一页显示 (当前页数-1)*5,n条数据,
做出判断 当前页数 = (当前页+1)>总页数?当前页: 当前页+1
当点击上一页显示 (当前页数-1)*5,n条数据,
做出判断 当前页数 = (当前页-1)<1?1: 当前页-1
当点击尾页时 limit 总页数,n;
文章转载自JAVA不归路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




