servlet jsp 实现分页
来源:互联网 发布:初学尤克里里软件 编辑:程序博客网 时间:2024/06/06 00:48
最近做的一个小的B/S项目中需要用到分页,我也是第一次接触,在查找很多资料后,最终成功实现。要实现分页,必须要确定使用的是哪个数据库,不同的数据库底层实现的分页查询的语句都不同,比如:mysql使用LIMIT,oracle使用ROWNUM。在这里我没写业务层,直接由servlet web层 调dao持久层,最终在表现出显示。
1.DAO-持久层
public DisciplinePageBean<Discipline> getAll(int pageCode, int pageSize) {Connection connection = null;try {connection = JDBCUtils.getConnection();DisciplinePageBean<Discipline> pageBean = new DisciplinePageBean<Discipline>();pageBean.setPageCode(pageCode);pageBean.setPageSize(pageSize);// 得到总记录数String sql = "SELECT COUNT(*) FROM discipline";Number number = (Number) queryRunner.query(connection, sql, new ScalarHandler());int totalRecode = number.intValue();pageBean.setTotalRecode(totalRecode);sql = "SELECT dc_id,stu_no,stu_name,stu_sex,m_name,stu_class,stu_phone,dc_type,dc_reason,dc_date FROM discipline d,major m,student s "+ "WHERE d.stu_id=s.stu_id AND m.m_id=s.m_id ORDER BY dc_id LIMIT ?,?";List<Discipline> lists = queryRunner.query(connection, sql,new BeanListHandler<Discipline>(Discipline.class), (pageCode - 1) * pageSize, pageSize);pageBean.setBeanList(lists);return pageBean;} catch (SQLException e) {e.printStackTrace();throw new DBException("数据库连接错误!");} finally {if (connection != null) {JDBCUtils.release(connection);}}}
2. servlet-web层
public void findAll(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{int pageCode = getPageCode(request);// 获取当前页面传递的页码int pageSize = 4;// 设定每页的纪录数DisciplinePageBean<Discipline> pageBean = disciplineDao.getAll(pageCode, pageSize);request.setAttribute("pageBean", pageBean);request.getRequestDispatcher("/StudyInfo/punishinfo.jsp").forward(request, response);}
3.jsp-表现层
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><th style="text-align: left;" width="5%">处分编号</th><th style="text-align: left;" width="10%">学号</th><th style="text-align: left;" width="10%">姓名</th><th style="text-align: left;" width="5%">性别</th><th style="text-align: left;" width="10%">专业</th><th style="text-align: left;" width="8%">班级</th><th style="text-align: left;" width="12%">电话</th><th style="text-align: left;" width="7%">类型</th><th style="text-align: left;" width="12%">原因</th><th style="text-align: left;" width="10%">日期</th><th style="text-align: left;" width="12%">操作</th></tr><!-- 如果数据库查询为空 --> <c:if test="${empty pageBean.beanList}"><tr style="height: 28px" class="tdbg" align="left"><td colspan="13" align="left" style="color: Red; font-weight: bold;">未找到违纪信息!</td> </tr></c:if><!-- 如果不为空 --><c:forEach items="${pageBean.beanList }" var="dis"><tr><td>${dis.dc_id }</td><td>${dis.stu_no }</td><td>${dis.stu_name }</td><td>${dis.stu_sex }</td><td>${dis.m_name }</td><td>${dis.stu_class }</td><td>${dis.stu_phone }</td><td>${dis.dc_type }</td><td>${dis.dc_reason }</td><td>${dis.dc_date }</td><td><a href="javascript:del('${dis.dc_id }');">删除</a> <a href="edit.do?id=${dis.dc_id }">修改</a></td></tr></c:forEach></table><br/><center><c:if test="${!empty pageBean.beanList}">第${pageBean.pageCode}页/共${pageBean.totalPage}页<a href="${pageBean.url }pageCode=1">首页</a><c:if test="${pageBean.pageCode >1 }"> <a href="showInfo.do?pageCode=${pageBean.pageCode-1 }">上一页</a></c:if><c:choose><%--当总页数不足10页时把所有都显示出来 --%><c:when test="${pageBean.pageCode<10 }"><c:set var="begin" value="1" /><c:set var="end" value="${pageBean.totalPage }" /></c:when><%--当总页数大于10页时 --%><c:otherwise><c:set var="begin" value="${pageBean.pageCode-5 }" /><c:set var="end" value="${pageBean.pageCode+4 }" /><%--头溢出 --%><c:if test="${begin < 1 }"><c:set var="begin" value="1" /><c:set var="end" value="10" /></c:if><%--尾溢出 --%><c:if test="${end > pageBean.totalPage }"><c:set var="begin" value="${pageBean.totalPage-9 }" /><c:set var="end" value="${pageBean.totalPage }" /></c:if></c:otherwise></c:choose><c:forEach var="i" begin="${begin }" end="${end }"><c:choose><c:when test="${i eq pageBean.pageCode }">${i }</c:when><c:otherwise><a href="${pageBean.url }pageCode=${i }">${i}</a> </c:otherwise></c:choose></c:forEach><c:if test="${pageBean.pageCode < pageBean.totalPage }"> <a href="${pageBean.url }pageCode=${pageBean.pageCode+1 }">下一页</a></c:if><a href="${pageBean.url }pageCode=${pageBean.totalPage }">尾页</a></c:if></center>
4.实体类-PageBean
public class PageBean<T> {// 当前页码private int pageCode;// 总页数private int totalPage;// 总记录数private int totalRecode;// 每页记录数private int pageSize;// 当前页的记录private List<T> beanList;private String url;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public int getPageCode() {return pageCode;}public void setPageCode(int pageCode) {this.pageCode = pageCode;}// 计算总页数public int getTotalPage() {int totalPage = totalRecode / pageSize;return totalRecode % pageSize == 0 ? totalPage : totalPage + 1;}public int getTotalRecode() {return totalRecode;}public void setTotalRecode(int totalRecode) {this.totalRecode = totalRecode;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public List<T> getBeanList() {return beanList;}public void setBeanList(List<T> beanList) {this.beanList = beanList;}}
阅读全文
1 0
- servlet jsp 实现分页
- JSP+JavaBean+Servlet实现分页
- JSP+servlet+javabean实现分页
- jsp+servlet+javaBean实现分页
- JSP+Servlet+JavaBean实现分页
- java+jsp+servlet实现分页
- jsp+servlet+javaBean怎样实现分页
- javaBean+servlet+jsp实现分页效果
- 使用jsp-javabean-servlet实现分页功能
- JSP+Servlet+JDBC实现数据分页
- 用jsp和servlet实现分页方法
- jsp+servlet实现的简单分页
- jsp+servlet+javabean实现数据分页
- JavaBean+Servlet+jsp真分页实现
- MySQL数据库+jsp+servlet实现分页查询
- servlet+jsp实现分页查询+导出
- jsp+Javabean+servlet实现分页查询
- Servlet+JSP分页
- 异步加载 JS 的3种方法
- 表xxx发生了变化,触发器/函数不能读它
- Http和Socket连接区别
- Android API19 设置Alarm闹钟
- 安卓开发中DeviceMonitor Connection attempts问题解决方案
- servlet jsp 实现分页
- 安卓实现电脑端的QQ登录界面 自动提示+点击按钮提示输入记录
- python解析json报错ValueError: Expecting property name: line 1 column 2 (char 1)
- 题外篇.1-简单测试spark源代码
- 网页显示502 bad gateway错误怎么办
- 测试路由器QoS的方法
- Hector SLAM算法学习与代码解析
- C++继承
- 01 为什么入门首选C语言