栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jsp分页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jsp分页

分页:是数据展示的一种形式

为什么要分页:因为数据量太大,一页展示不完全,所有就用分页

 sql语句:

select * from (select a.*,rownum myid from news a ) b where myid between ? and ?";

每页最多展示的条数/页大小:pageSize=5

当前页码:pagelndex

每页开始的条数:start=(pagelndex-1)* pageSize+1

每页结束的条数:end=pagelndex*pagelndex

页码开始条数结束条数
11=(1-1)*pageSize+15=1*5
26=(2-1)*pageSize+110
311=(3-1) *pageSize+115
416=(4-1) *pageSize+115

方法:

	public List query(int pageIndex,String str) throws SQLException{
		int pageSize = 5;//页大小
		int start = (pageIndex-1)*pageSize+1;// 每页开始数据条数
		int end = pageIndex * pageSize;// 每页结束的数据条数
		listNews = new ArrayList<>();
		con = DBhelper.getCon();
		sql = "select * from (select a.*,rownum myid from news a where a.sid like '%"+str+"%') b where myid between ? and ?";
		ps = con.prepareStatement(sql);
		ps.setInt(1, start);
		ps.setInt(2, end);
		rs = ps.executeQuery();
		while(rs.next()) {
			news = new News(rs.getInt("nid"), rs.getInt("sid"), rs.getString("title"), rs.getString("author"), 
							rs.getString("summary"), rs.getString("content"),null);
			listNews.add(news);
		}
		DBhelper.closeObj(con, ps, rs);
		return listNews;
	}

总数据量:rows

页大小:pageSize=5

最大页码:maxPage

maxPage=rows/pageSize;

if(rows%pageSize !=0){//有余数

        pageSize++;//多加一页

}

 方法:

	public int getMaxPage(String str) throws Exception{
		con = DBhelper.getCon();
		sql = "select count(0) from news where sid like '%"+str+"%'";
		ps = con.prepareStatement(sql);
		rs = ps.executeQuery();
		if(rs.next()) {
			maxPage = rs.getInt(1) / 5;
			if(rs.getInt(1) % 5 != 0) {
				maxPage ++;
			}
		}
		DBhelper.closeObj(con, ps, rs);
		return maxPage;
	}

 Servlet:

public class LoadDataServlet  extends HttpServlet{
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			// 1.设置编码
			req.setCharacterEncoding("utf-8");
			resp.setContentType("text/html;charset=utf-8");
			
			// 定义当前页码变量
			int pageIndex = 1;// 默认展示第一页的数据
			// 获取前台传来的页码变量
			String myPageIndex = req.getParameter("pageIndex");
			
			// 把从前台获取的页码 myPageIndex赋给当前页码 pageIndex
			if(null != myPageIndex) {
				pageIndex = Integer.parseInt(myPageIndex);
			}
			
			// 新闻 dao类
			NewsDao nd = new NewsDao();
			
			// 2.获取 内置对象
			PrintWriter out = resp.getWriter();
			HttpSession session = req.getSession();
			
			// 获取前台传来的模糊查询关键字
			String str = req.getParameter("str");
			if(null == str) {
				str = "";
			}
			// 调用分页的方法
			List listNews = nd.query(pageIndex, str);
			// 把获取的数据集合 listNews 保存到 request作用域里面
			req.setAttribute("listNews", listNews);
			// 把当前页码 pageIndex保存到
			req.setAttribute("pageIndex", pageIndex);
			// 把模糊查询关键字保存到 request作用域里面
			req.setAttribute("str", str);
			
			// 通过转发跳转到 admin页面 request作用域里面
			req.getRequestDispatcher("/admin/admin.jsp").forward(req, resp);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

}
 
      

/loadDataServlet.do?str=<%=str %>&pageIndex=1">首页 /loadDataServlet.do?str=<%=str %>&pageIndex=<%=pageIndex>1?pageIndex-1:1 %>">上一页 当前页数:[<%=pageIndex %>/<%=maxPage %>]  /loadDataServlet.do?str=<%=str %>&pageIndex=<%=pageIndex">下一页 /loadDataServlet.do?str=<%=str %>&pageIndex=<%=maxPage %>">末页

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754540.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号