- 浏览: 187046 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Errorize:
一个用servlet实现导出csv文件的实例 -
wendellhu:
求monkey talk应用文档的解压密码
monkey talk应用文档 -
wendellhu:
加密的?
monkey talk应用文档 -
hugang357:
hslh22 写道不错的资源,可以使用,只是没有最大最小值的限 ...
数字微调输入框 -
hslh22:
不错的资源,可以使用,只是没有最大最小值的限制,需要自己去加逻 ...
数字微调输入框
上一页 [1][2][3][4][5][6][7][8][9][10] 下一页,实现一个仿 Google 得分页。
1 、创建 Page 类,
package cn.csdn.domain; import java.util.List; public class Page { private int nowpage;// 当前页 private int countrecord;// 总记录数 private int countpage;// 总页数 private int pageindex;// 当前页记录开始的位置 (nowpage-1)*PAGESIZE public static final int PAGESIZE = 5;// 每页显示的记录数 private int sumindex = 6;// 索引的sum值 代表的是 google页面中最大显示页数 private int startindex;// 开始的索引值 private int endindex;// 结束的索引值 private List allentities; public Page() { } public Page(int countrecord, int nowpage) { // 可变 // 计算当前页 this.nowpage = nowpage; // 计算出当前页开始的位置 this.pageindex = (nowpage - 1) * PAGESIZE; // 计算总页数 this.countrecord = countrecord; if (this.countrecord % this.PAGESIZE == 0) { this.countpage = this.countrecord / this.PAGESIZE; } else { this.countpage = this.countrecord / this.PAGESIZE + 1; } // 计算索引位置 //==============第一种方法======== /*if (this.nowpage <= 4) { this.startindex = 1; this.endindex = this.nowpage + 2; if(this.endindex>this.countpage){ this.endindex=this.countpage; } }else if(this.nowpage>4){ this.startindex=this.nowpage-3; this.endindex=this.nowpage+2; if(this.endindex>this.countpage){ this.endindex=this.countpage; this.startindex=this.countpage-5; } }*/ // ============第二种方法========== if(nowpage<(lastpage-2)){ if(nowpage>=5){ //如果大于6的话,startindex要变大 startindex=nowpage-3; }else{ startindex=1; } //endindex要变大 endindex=nowpage+2; // 如果总页数小于6 if(endindex>lastpage){ endindex=lastpage; } }else{ endindex=lastpage; startindex=endindex-5; } // ====================== } //get、set方法 public int getNowpage() { return nowpage; } public void setNowpage(int nowpage) { this.nowpage = nowpage; } public int getCountrecord() { return countrecord; } public void setCountrecord(int countrecord) { this.countrecord = countrecord; } public int getCountpage() { return countpage; } public void setCountpage(int countpage) { this.countpage = countpage; } public int getPageindex() { return pageindex; } public void setPageindex(int pageindex) { this.pageindex = pageindex; } public int getSumindex() { return sumindex; } public void setSumindex(int sumindex) { this.sumindex = sumindex; } public int getStartindex() { return startindex; } public void setStartindex(int startindex) { this.startindex = startindex; } public int getEndindex() { return endindex; } public void setEndindex(int endindex) { this.endindex = endindex; } public List getAllentities() { return allentities; } public void setAllentities(List allentities) { this.allentities = allentities; } }
2 、 dao 方法中的代码:
public int getCountRecord() { // 1、定义返回结果 int countrecord = 0; // 2、获取数据库连接对象 conn = DBConn.getConn(); // 3、创建预处理的sql语句 String sql = "select count(*) from student"; try { // 4、根据预处理的sql语句创建预处理的操作对象 pstmt = conn.prepareStatement(sql); // 5、查询的时候 直接执行 rs = pstmt.executeQuery(); // 6、判断 if (rs.next()) { countrecord = rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConn.close(rs, pstmt); } return countrecord; } // 获取当前页信息 public List<Student> getNowPageInfo(int pageindex,int pagesize) { //1、定义返回结果变量 List<Student> allentities = new ArrayList<Student>(); //2、获取连接对象 conn = DBConn.getConn(); try { //3、根据预处理的sql语句创建预处理的操作对象 pstmt = conn.prepareStatement("select id,name,age,email from student limit ?,?"); //4、定义下标变量 并赋值 int index = 1; pstmt.setInt(index++, pageindex); pstmt.setInt(index++, pagesize); //5、查询的时候 直接执行 rs = pstmt.executeQuery(); //判断 while(rs.next()){ //创建实体bean对象 Student entity = new Student(); entity.setId(rs.getInt("id")); entity.setName(rs.getString("name")); entity.setAge(rs.getInt("age")); entity.setEmail(rs.getString("email")); //添加到集合中 allentities.add(entity); } } catch (SQLException e) { e.printStackTrace(); }finally{ DBConn.close(rs, pstmt); } return allentities; }
3 、在 servlet 中的代码:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.设置编码 req.setCharacterEncoding("utf8"); //2.获取当前页 int nowpage=1; String npage = req.getParameter("nowpage"); if(npage!=null){ nowpage = Integer.valueOf(npage); } //3、创建sevice服务操作对象 StudentServiceImpl ssi = new StudentServiceImpl(); //计算总记录数 int countrecord = ssi.getCountRecord(); //创建page对象 Page stupage = new Page(countrecord, nowpage); //获取当前页信息 List<Student> allentities = ssi.getNowPageInfo(stupage.getPageindex(),stupage.PAGESIZE); //把当前页信息赋值给page对象的list集合 stupage.setAllentities(allentities); //存入到reqeust中 req.setAttribute("stupage", stupage); req.getRequestDispatcher("liststudents.jsp").forward(req, resp); } 4 、在 jsp 中的代码 :
<div id="pg"> <c:if test="${stupage.nowpage!=1}"> <span> <a href="${pageContext.request.contextPath}/liststudents.do?nowpage=${stupage.nowpage-1>0?stupage.nowpage-1:1}">上一页</a> </span> </c:if> <c:forEach begin="${stupage.startindex}" end="${stupage.endindex}" var="indexnum"> <span> [<a href="${pageContext.request.contextPath}/liststudents.do?nowpage=${indexnum}">${indexnum}</a>] </span> </c:forEach> <c:if test="${stupage.nowpage!=stupage.countpage}"> <span> <a href="${pageContext.request.contextPath}/liststudents.do?nowpage=${stupage.nowpage+1>stupage.countpage?stupage.countpage:stupage.nowpage+1}">下一页</a> </span> </c:if> </div> |
发表评论
-
12hh
2013-06-07 09:35 777fdgtg -
百度只剩1
2012-03-22 00:10 0附件 -
Timer与TimerTask入门
2011-05-24 22:52 854Java2的开发包中提供了 ... -
Timer与TimerTask实例
2011-05-24 22:51 1380今天看了一下Timer与TimerTask的用法并且在网上 ... -
web应用每晚12点定时执行程序代码实例
2011-05-24 22:50 20701、当前web应用的web.xml文件配置容器监听类com ... -
Tomcat java 定时任务
2011-05-24 22:49 1207如何在Web工程中实现任 ... -
Java定时器在Web中的应用
2011-05-24 22:46 933本文实例的最终功能是每天某个时间点(如每晚22点)执行某一功能 ... -
java 导出成.csv文件的乱码问题
2011-05-19 23:54 2574已经解决因为所有页面都是用UTF-8的编码方式。本以为这 ... -
一个用servlet实现导出csv文件的实例
2011-05-19 23:49 3234Java采用反射导出CSV文件替代导出Excel p ... -
Google分页的经典案例
2011-05-05 22:25 9771 、创建 Page 类, pack ... -
网络管理:openldap详解
2011-04-27 22:45 1104简介 LDAP是轻量目录 ... -
openldap的配置手册
2011-04-27 22:44 927最近一直在安装opneldap-2 ... -
slapd.conf 配置文件中的高级功能使用方法
2011-04-27 22:42 14871. 开启日志功能启用日 ... -
OpenLDAP主配置文件slapd.conf介绍
2011-04-27 22:41 1253安全起见,slapd.conf文件应该只让运行此进程的用户可读 ... -
定制你的LDAP目录的Schema
2011-04-27 22:38 1233(http://www.infoxa.com/asp/tech ... -
ubuntu 8.04上openldap的安装和使用
2011-04-27 22:36 10531、安装openldap。$ sudo apt-get ins ... -
ubuntu上部署OpenLDAP
2011-04-27 22:34 1769原文地址:https://help.ubuntu.com/co ... -
OpenLDAP中 Schema的详细介绍
2011-04-27 22:33 3131本章讲述了如何扩展用户使用的schema。本章假设阅读者已经熟 ... -
第一个JFreeChart实例
2011-01-21 00:12 2541JFreeChart的使用非常简单,我们只需要提供满 ... -
JFreeChart简介及下载、配置
2011-01-21 00:00 1757JFreeChart简介 JFreeChart是 ...
相关推荐
**Ajax经典案例开发大全** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了用户体验...
在本案例中,"仿GOOGLE搜索框的ASP源码"是指一个使用ASP技术构建的搜索功能,其设计灵感来源于谷歌的搜索框,目的是为用户提供类似谷歌的搜索体验。这个源码不仅实现了搜索界面的模拟,还整合了数据库连接,使得用户...
总结来说,Google Suggest是利用Ajax技术提升搜索引擎用户体验的一个经典案例,它的实现涉及到JavaScript编程、HTTP请求、JSON数据交换、DOM操作等多个方面,对于理解和学习Web开发,特别是前端交互设计具有很高的...
通过17个经典案例,你可以深入理解Android平台的工作原理,并在实践中提升自己的编程能力。 1. **Android基础知识**:首先,你需要了解Java语言基础,因为Android应用主要使用Java或Kotlin进行开发。学习Android ...
在这个"Ajax经典实例大全"中,我们将深入探讨Ajax的核心概念、工作原理以及各种实用案例。 1. **Ajax核心概念** - XMLHttpRequest对象:这是Ajax技术的基础,它允许JavaScript在后台与服务器通信,而不会打断用户...
这本宝典涵盖了Ajax的核心概念、关键技术和各种实用案例,对于Web开发者来说是宝贵的参考资料。 1. **Ajax基础** - **异步通信**:Ajax的核心是浏览器通过JavaScript创建XMLHttpRequest对象,实现后台与服务器的...
- **分页加载**:无刷新地加载更多内容,提高页面性能。 - **实时聊天**:使用WebSocket或Long Polling等技术实现实时通信。 - **动态加载内容**:如Google地图的平滑滚动加载。 - **异步提交**:如评论、评分等...
第3篇 项目案例实战 第23章 在线音乐管理系统(ajax+jsp+struts 2.x) 23.1 在线音乐管理系统简述 23.2 在线音乐管理系统前期准备 23.3 在线音乐管理系统具体实现——超级管理员操作 23.4 在线音乐...
《Pragmatic Ajax A Web2.0 Primer》是一本深入探讨Web 2.0核心技术——Ajax(异步JavaScript和XML)的国外经典著作。这本书旨在帮助开发者理解如何利用Ajax技术构建更高效、更具交互性的Web应用程序。Ajax的核心...
此外,考虑到数据量和网络条件,可能还使用了分页加载、数据缓存等策略,以提高用户体验。 3. **数据模型与API接口**: 项目中肯定包含了一系列的数据模型,这些模型对应着服务器端的JSON结构,用于解析和存储从...
他曾是Google的员工,并在Linux内核开发方面做出了显著贡献。凭借其丰富的实践经验,Love在这本书中分享了许多宝贵的内核开发技巧和技术细节。 #### 主要内容概述 本书覆盖了Linux内核的各个方面,适合不同层次的...
黑底深蓝、黑底炫彩、黑底深灰、黑底棕色、混合苍青、经典蓝色、朴素蓝色、 明亮蓝色、 精美浅蓝、 韵味深蓝、 品味棕色、 简洁灰色、 明亮银灰、 健康、 植物、 混合黄绿、 混合蓝绿、 可爱泡泡、 可爱洋红、 精美...
22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性的对象 22.15 用prototype实现JavaScript的继承 22.16 ...
第1章 页面特效 ...1.2 页面自动最大化 1.3 页面自动刷新 ...22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性...