《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc

上传人:scccc 文档编号:11229343 上传时间:2021-07-15 格式:DOC 页数:9 大小:66KB
返回 下载 相关 举报
《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc_第1页
第1页 / 共9页
《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc_第2页
第2页 / 共9页
《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc_第3页
第3页 / 共9页
《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc_第4页
第4页 / 共9页
《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc》由会员分享,可在线阅读,更多相关《《java ee开发技术教学课件》java-web分页操作(jsp servlet javabean).doc(9页珍藏版)》请在三一文库上搜索。

1、Java-web分页操作(jsp+servlet+javaBean)一 分页操作分析分页在web项目中是非常重要的技术,打开每一个网页都可以看到分页1疑问的出现在写分页前要了解什么是分页,分页一共有多少个方法、多少个参数,应该如何编写方法的实现和定义参数的变量2疑问的解决 分页一般分为首页、上一页、下一页、末页,还要得到总记录数,总页数,下面来详细介绍一下它们的概念 如果设当前页为newPage (1)当前页 - 打开网页时看到的页面(2)首页 - 第一页 newPage=1(3)上一页 - 当前页-1 newPage-1 (4)下一页 - 当前页+1 newPage+1(5)末页 - 当前页

2、=总页数 countPage=newPage(6)总记录数 - select count(*) from 表名(7)总页数 - 总记录数%每页显示的记录数=0 ? 总记录数/每页显示的记录数: 总记录数/每页显示的记录数+1(8)显示当前页的分析 每页显示10条记录 第1页:newpage=1 起始记录为0 10 第2页:newpage=2 起始记录 10 10 第3页:newpage=3 起始记录 20 10 第4页:newpage=1 起始记录为30 10 第5页:newpage=2 起始记录 40 10 第6页:newpage=3 起始记录 50 第n页 newpage=n (newpa

3、ge-1)*pageSize (9)查询指定的页面 Select id,title,content from new limit 0,10 注:从0开始查询,每页显示10条记录二 功能的实现1首先创建数据库 id name address 设置为int varchar varchar 类型的,并插入多条数据,以便于分页的操作2创建功能模块,先实现domain层 - 用于封装数据库中的数据,代码如下package com.csdn.paging.domain;public class Paging private Integer id; private String name; private

4、String address; public Paging() super(); public Paging(Integer id, String name, String address) super(); this.id = id; this.name = name; this.address = address; public Integer getId() return id; public void setId(Integer id) this.id = id; public String getName() return name; public void setName(Stri

5、ng name) this.name = name; public String getAddress() return address; public void setAddress(String address) this.address = address; Override public String toString() return Paging id= + id + , name= + name + , address= + address + ; 3实现类的编写-对数据有条件的读取,其中包括查询指定页数、获取总记录数、获取总页数。 (1)创建一个接口,用于写这几个抽象方法 -

6、PagingDao package com.csdn.paging.dao;import java.util.List;import com.csdn.paging.domain.Paging;public interface PagingDao /显示总的记录条数 Integer getCountRecord(); /根据当前页到结束页的查询 List findIimitPage(Integer newPage); /总的页数 Integer getCountPage();(2)创建一个类,用于继承PagingDao接口 - PagingDaoImplpackage com.csdn.pag

7、ing.dao;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.csdn.paging.domain.Paging;public class PagingDaoImpl implements PagingDao private stat

8、ic final Integer pageSize = 5;private Integer countRecord;/ 共有多少条记录private Integer countPage;/ 共有多少页private static final String URL = jdbc:mysql:/localhost:3306/paging?user=root&password=qiao&useUnicode=true&characterEncoding=utf-8;private static Connection conn;private PreparedStatement pstmt;priva

9、te ResultSet rs;static try / 加载驱动 Class.forName(com.mysql.jdbc.Driver); / 建立连接 conn = DriverManager.getConnection(URL); catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); public Integer

10、 getCountRecord() / 设置返回值 Integer count = 0; / 获取连接 / 定义sql语句 查询出一共的记录条数 String sql = select count(*) as con from paging; try / 创建预处理对象 pstmt = conn.prepareStatement(sql); / 为占位符赋值 / 执行更新语句 rs = pstmt.executeQuery(); / 判断 if (rs.next() count = rs.getInt(con); / 计算出总页数,并从getCountPage方法中获取 this.countP

11、age = (count % pageSize) != 0 ? (count / pageSize + 1) : (count / pageSize); / 释放资源 if (rs != null) rs.close(); if (pstmt != null) pstmt.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return count;/ 得到总的页数public Integer getCountPage() / TODO Auto-generated met

12、hod stub return countPage;/ 根据传过来的数值条件查询public List findIimitPage(Integer newPage) / 修改返回值 List entities = new ArrayList(); / 获取连接 / 定义SQL语句 String sql = select id,name,address from paging limit ?,?; try / 创建预处理对象 pstmt = conn.prepareStatement(sql); / 为占位符赋值 int index = 1; pstmt.setObject(index+, (n

13、ewPage - 1) * pageSize); pstmt.setObject(index+, pageSize); / 执行更新 rs = pstmt.executeQuery(); / 判断 while (rs.next() Paging entity = new Paging(); entity.setId(rs.getInt(id); entity.setName(rs.getString(name); entity.setAddress(rs.getString(address); entities.add(entity); / 释放资源 if (rs != null) rs.cl

14、ose(); if (pstmt != null) pstmt.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return entities;4布局显示的jsp页面,在此页面上给servlet传参数,并通过跳转页面返回到jsp页面,servlet层是业务逻辑层,用于处理和Dao的连接Jsp页面 paging.jsp注意导入标签 /通过超链接连接到servlet层上,并为newPage传参数 查看所有信息 、 $entity.id $entity.name $entit

15、y.address 首页 a href=$pageContext.request.contextPath/paging?newPage=$newPage-1上一页 =countPage?countPage:newPage+1下一页 末页 5.servlet层的使用 - PagingServlet.javapublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(utf-

16、8); response.setContentType(text/html;charset=utf-8); String npage = request.getParameter(newPage); List entities = pageService.findIimitPage(new Integer(npage); int countRecord = pageService.getCountRecord(); int countPage = pageService.getCountPage(); request.setAttribute(entities, entities); request.setAttribute(countPage, countPage); request.setAttribute(newPage, npage); request.setAttribute(countRecord, countRecord); request.getRequestDispatcher(./paging.jsp).forward(request, response); 效果如下图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1