javaweb分页显示_java分页查询原理思路

javaweb分页显示_java分页查询原理思路效果图如下:实现步骤:1.创建实体User.class,参考代码如下:publicclassUser{ privateStringname; privateintage; privateStringgender; publicStringgetName(){ returnname; } publicvoidsetName(Stri…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

效果图如下:

javaweb分页显示_java分页查询原理思路

实现步骤:

1.创建实体User.class,参考代码如下:

public class User {
	private String name;
	private int age;
	private String gender;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public User(String name, int age, String gender) {
		super();
		this.name = name;
		this.age = age;
		this.gender = gender;
	}

	public User() {
	}

}

2.创建分页模型PageBean.class,参考代码如下:

public class PageBean<T> {
	
	private int pageNum; 
	private int pageSize; 
	private int totalRecord;  
	private int totalPage;  
	private List<T> list;
	private int start;
	private int end;
	private int fromIndex;
	private int toIndex;

	public PageBean(int pageNum, int pageSize, int totalRecord) {
		this.pageNum = pageNum;
		this.pageSize = pageSize;
		this.totalRecord = totalRecord;
		fromIndex=(pageNum-1)*pageSize;
		toIndex=pageNum*pageSize>totalRecord?totalRecord:pageNum*pageSize;

		if (totalRecord % pageSize == 0) {
			this.totalPage = totalRecord / pageSize;
		} else {
			this.totalPage = totalRecord / pageSize + 1;
		}
		start = 1;
		end = 5;
		if (totalPage <= 5) {
			end = this.totalPage;
		} else {
			start = pageNum - 2;
			end = pageNum + 2;

			if (start < 1) {
				start = 1;
				end = 5;
			}
			if (end > this.totalPage) {
				end = totalPage;
				start = end - 5;
			}
		}
	}

	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalRecord() {
		return totalRecord;
	}

	public int getFromIndex() {
		return fromIndex;
	}

	public void setFromIndex(int fromIndex) {
		this.fromIndex = fromIndex;
	}

	public int getToIndex() {
		return toIndex;
	}

	public void setToIndex(int toIndex) {
		this.toIndex = toIndex;
	}

	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public List<T> getList() {
		return list;
	}

	public void setList(List<T> list) {
		this.list = list.subList(fromIndex, toIndex);
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getEnd() {
		return end;
	}

	public void setEnd(int end) {
		this.end = end;
	}

}

3.创建jsp页面,参考代码如下:

/**
 *index.jsp
 */
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <a href="${pageContext.request.contextPath }/main">分页显示</a>
    </body>
</html>

/**
 *main.jsp
 */
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript"
	    src="${pageContext.request.contextPath}/jquery/jquery.min.js"></script>
        <script type="text/javascript">
	    function gos() {
		var pageNum = $.trim($("#pageNum").val());
		if(isNaN(pageNum)){
			alert("输入的不是数字 ,请输入数字!");
			return ;
		}
		if(pageNum==""){
			alert("输入为空,请重新输入!");
			return ;
		}
		if(pageNum<1||pageNum>${requestScope.pageBean.totalPage}){
			alert("超出范围,请重新输入!");
			return ;
		}
            location.href="${pageContext.request.contextPath}/main?pageNum="+pageNum;
	}
        </script>
        <title>分页显示</title>
    </head>
    <body>
	<center>
		<table width="40%" style="text-align:center">
			<tr>
				<th>姓名</th>
				<th>性别</th>
				<th>年龄</th>
			</tr>
			<c:forEach items="${requestScope.pageBean.list }" var="i">
				<tr>
					<td>${i.name }</td>
					<td>${i.gender }</td>
					<td>${i.age }</td>
				</tr>
			</c:forEach>
		</table>
	</center>
	<br />
	<center>
	<a href="${pageContext.request.contextPath}/main?pageNum=1">首页</a>
	<c:if test="${requestScope.pageBean.pageNum ==1}">
		<c:forEach begin="${requestScope.pageBean.start}"
			end="${requestScope.pageBean.end}" var="i">
			<c:if test="${requestScope.pageBean.pageNum == i}">
                        ${i}
                    </c:if>
			<c:if test="${requestScope.pageBean.pageNum != i}">
				<a href="${pageContext.request.contextPath}/main?pageNum=${i}">${i}</a>
			</c:if>
		</c:forEach>
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum+1}">下一页</a>
	</c:if>

	<c:if
		test="${requestScope.pageBean.pageNum > 1 && requestScope.pageBean.pageNum < requestScope.pageBean.totalPage}">
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum-1}">上一页</a>
		<c:forEach begin="${requestScope.pageBean.start}"
			end="${requestScope.pageBean.end}" var="i">
			<c:if test="${requestScope.pageBean.pageNum == i}">
                        ${i}
                    </c:if>
			<c:if test="${requestScope.pageBean.pageNum != i}">
				<a href="${pageContext.request.contextPath}/main?pageNum=${i}">${i}</a>
			</c:if>
		</c:forEach>
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum+1}">下一页</a>
	</c:if>

	<c:if
		test="${requestScope.pageBean.pageNum == requestScope.pageBean.totalPage}">
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum-1}">上一页</a>
		<c:forEach begin="${requestScope.pageBean.start}"
			end="${requestScope.pageBean.end}" var="i">
			<c:if test="${requestScope.pageBean.pageNum == i}">
                        ${i}
                    </c:if>
			<c:if test="${requestScope.pageBean.pageNum != i}">
				<a href="${pageContext.request.contextPath}/main?pageNum=${i}">${i}</a>
			</c:if>
		</c:forEach>
	    </c:if>
	    <a
		href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.totalPage}">尾页</a><br><br>
	跳转到
	    <input type="text" id="pageNum" size="1px"></input>页
	    <a href="javascript:gos()">确定</a>, 共[${requestScope.pageBean.totalPage }]页,[${requestScope.pageBean.totalRecord}]条记录
	</center>
    </body>
</html>

4.创建Servlets.class,参考代码如下:

@WebServlet("/main")
public class Servlets extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String page = request.getParameter("pageNum");
		int pageNum = Integer.parseInt((page == null ? "1" : page));
		int pageSize = 5;
		Service s = new Service();
		PageBean<User> pb = s.findAll(pageNum, pageSize);
		request.setAttribute("pageBean", pb);
		request.getRequestDispatcher("/main.jsp").forward(request, response);
	}
}

5.创建Service.class,参考代码如下:

public class Service {
	public PageBean<User> findAll(int pageNum, int pageSize) {
		UserDao userDao = new UserDao();
		List<User> users = userDao.findAll();
		int totalRecord = users.size();
		PageBean<User> pb = new PageBean<>(pageNum, pageSize, totalRecord);
		pb.setList(users);
		return pb;
	}
}

6.创建UserDao.class,参考代码如下:

public class UserDao {
	List<User> users=new ArrayList<>();
	User user;
	public List<User> findAll(){
		for(int i=1;i<99;i++){
			user=new User("name-"+i, (int)(100*Math.random()), (int)(10*Math.random())%2==1?"男":"女");
			users.add(user);
		}
		return users;
	}
}

需注意的问题:

1.需在WebContent下创建文件夹jquery,在他里面放入jquery.min.js这个文件。否则跳转功能异常。

2.index.jsp与main.jsp都在WebContent文件夹下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188223.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • cBioPortal简介[通俗易懂]

    cBioPortal简介[通俗易懂]使用cBioCancerGenomicsPortal综合分析癌症基因和临床资料cBioCancerGenomicsPortal简介cBioCancerGenomicsPortal

    2022年8月3日
  • SMTP服务器地址_接收邮件服务器和发送邮件服务器

    SMTP服务器地址_接收邮件服务器和发送邮件服务器网站smtp服务器内容精选换一换如果您需要使用创建的云服务器搭建一个对外展示的网站或者Web应用程序,请按以下步骤进行相关的配置操作。建站参考如果您使用的是公共镜像创建的云服务器,那么购买完成后可以参考以下建站指导完成完网站或应用程序的搭建。搭建WordPress博客平台,请参考部署WordPress博客系统搭建Discuz论坛平台,请参考搭建Discuz论坛网站。更云解析服务支持为域名快速添…

    2022年10月3日
  • 如何分析系统平均负载过高的原因_线上cpu负载过高如何排查

    如何分析系统平均负载过高的原因_线上cpu负载过高如何排查前言我相信你应该用过uptime命令查询系统负载的情况,或者在各种监控终端上看到过系统load这一项,但是每次问别人到底什么是系统load?系统load到达多少算过高?又有哪些原因会造成系统load过载?我发现很少有人能回答清楚,大多数都觉得系统load过载就表示CPU使用率过载、然而实际上并不完全这样的,本文就来仔细分析一下到底有哪些原因会造成系统load过载!uptime命令还是先来看看uptime命令,…

    2022年9月13日
  • url转换_图片在线转换url免费

    url转换_图片在线转换url免费//转换URL地址exchangeUrl(url){if(typeofurl'string'){returnurl.replace('?',&#

    2022年8月4日
  • fedora14安装教程_ubuntu安装后配置

    fedora14安装教程_ubuntu安装后配置1、root账号登陆打开系统工具-终端输入命令:su-输入root密码(此时密码不显示,直接输入)输入命令:gedit/etc/pam.d/gdm在文本编辑器中注释掉”authrequiredpam_succeed_if.souser!=rootquiet”这一行(在这一行前面加上”#”,即改成#authrequiredpam_succeed_if.so

    2022年9月20日
  • 2021 Navicat 15 for MySQL激活码(JetBrains全家桶)

    (2021 Navicat 15 for MySQL激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号