10.分页案例

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>

导包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7BTGHCa-1609564958115)(图片/img05.png)]

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);
		//System.out.println(uis);
	}
}

entity

package com.zuxia.entity;

/**
 * 用户信息实体类
 * 
 * @author Java53
 *
 */
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;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值