JSP分页与查询

分页是什么

分页是一种将所有数据分段展示给用户的技术。用户每次看到的并不是全部数据,而是其中的一部分,如果在这部分数据中没有找到自己想要的内容,可以通过指定页码或是翻页的方式转换到其他内容,直到找到自己想要的内容为止。这种技术缩短了请求响应时间,而且也不会出现因数据过多导致页面冗长的情况,提高了用户体验。

在这里插入图片描述
在这里插入图片描述

下面是Servlet文件
在这里插入图片描述
在这里插入图片描述
下面是target.jsp文件
在这里插入图片描述

分页原理
浏览器直接请求index.jsp页面,该页面执行page()方法,此时pageNo的值为1,这时向DataServlet发送请求,并且将pageNo传过去;

Servlet收到请求后(这里我们把pageSize规定为3,即3个数据为一页),通过sql语句中的limit,得到第一页数据,同时得到了数据的总条数count,从而计算得到总页数totalPage,我们把得到的数据通过request转发的方式,转发到target.jsp;

target.jsp页面,将第一页数据遍历出来,同时将总页数附在了隐藏框的value中,一并返回到index.jsp的data中(我们用了异步的方法)

这时在index.jsp页面中我们可以选择上一页或者下一页,触发up函数以及down函数,使pageNo改变后再触发page()函数,从而实现分页与翻页。

查询原理
写一个文本框,再写一个按钮,按钮触发search()方法,这里的search方法就是重置pageNo为1时,再运行page()方法。

我们要获取的是文本框中输入的值,然后在数据库中对该值进行模糊查询,其中有许多小技巧

  1. 我们要把文本框的值穿到数据库中,首先就要通过异步传到DataServlet中去,我们这里采用了一个滚雪球的方式,定义了一个字符串类型的变量path,判断文本框中输入的相关姓名以及地址的值是否存在,若存在,我们则用字符串拼接的方式,将name与address拼接到path上一并传过去。
  2. 传过去之后,我们就要在DataServlet中重新写sql语句对传过来的数据进行模糊查询,这里就有第二个小技巧,即where的拼接方式:我们先定义一个字符串类型的where 赋值“where 1=1”,这样就有利于我们拼凑,大家可以自己感受一下不这么写会有多难拼凑,写好where之后再把where拼接进sql语句就OK了
  3. 然后通过内部类将数据存在list集合中,再通过request的setAttribute方法,将值存在request中,再通过request转发,将值转发到target.jsp,再返回到index.jsp中的data中,最后在浏览器中显示
发布了101 篇原创文章 · 获赞 3 · 访问量 2259

猜你喜欢

转载自blog.csdn.net/S_Tian/article/details/103479325