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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBoot项目添加mybatis插件

    SpringBoot项目添加mybatis插件SpringBoot项目添加mybatis插件项目场景:    对SpringBoot项目,如何在Mybatis中添加插件可以直接从dao->xml层业务实现:    下载插件MybatisX    File->Settings->plugins安装即可(随后重启IDEA)问题描述:   &nbs

    2022年10月7日
    0
  • 3.vue生命周期钩子函数有哪些?(vue生命周期的理解)

    定义:vue的生命周期是指vue实例从初始化创建到实例销毁的过程。期间会有8个钩子函数的调用。 vue的钩子函数图解: vue的钩子函数使用总结:1、beforeCreate(创建前):beforeCreate钩子函数,这个时候,vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。无法访问到数据和真实的dom和data中的数据,可以在这里面使用l…

    2022年4月12日
    139
  • 环信及时通讯 Laravel 扩展包

    环信及时通讯 Laravel 扩展包

    2021年11月9日
    37
  • Hadoop生态系统常用组件导图

    Hadoop生态系统常用组件导图Hadoop生态系统主要组件导图:看大图

    2022年5月19日
    32
  • C语言输入输出格式符[通俗易懂]

    C语言输入输出格式符[通俗易懂]C语言输入输出格式符printf函数(格式输出函数)1.一般格式printf(格式控制,输出表列)例如:printf(“i=%d,ch=%c\n”,i,ch);说明:(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。②普通字符,即需要原样输出的字符。(2)“输出表列”是需要输出的一些数据,可以是表达式(3)printf函数的一般形式可以表示为printf(参数1,参数2,…

    2022年7月24日
    12
  • Activiti工作流使用之项目实例

    Activiti工作流使用之项目实例Activiti工作流使用之项目实例文章目录Activiti工作流使用之项目实例一、配置文件1.1pom依赖引入1.2application.properties文件二、BPMN文件三、控制层Controller四、实现类Service4.1流程启动(不进入下一环节)4.2流程启动(直接进入下一环节)4.3审批任务4.4查询我发起的流程4.5流程下任务详情4.6删除流程4.7我待审核的任务五、监听器六、流程示意一、配置文件1.1pom依赖引入<dependency>

    2022年10月5日
    0

发表回复

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

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