- 浏览: 118380 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
darrendu:
如果我们不准备实现一个接口的全部方法时,因为我们这个类不需要用 ...
缺省适配器模式 -
cwalet:
显然这个错误是在使用struts标签时产生的,原因是没有在st ...
彻底解决 警告: No configuration found for the specified action -
jzinfo:
{} xtcpcgx 写道还是有点不明白,感觉缺省适配类跟接口 ...
缺省适配器模式 -
xtcpcgx:
还是有点不明白,感觉缺省适配类跟接口代码一模一样啊。
缺省适配器模式 -
googya:
这段代码的结果是,dopost根本没有执行?
servlet中service doGet doPost 的关系
针对分页,首先开发一个 PageBean 用来控制页面参数:
package com.longweir; //分页后的javaBean import java.sql.*; import com.longweir.util.*; public class PageBean { private int pageSize=5; // 每页显示的记录数5个 private int currentPage=1; // 当前页码 private int pageCount=1; // 总页数 private int totalCount=0; // 总记录数 // 计算总页数 public void setPageCount() { this.pageCount=(this.totalCount-1)/this.pageSize+1; } //获取总页数 public int getPagecount() { return this.pageCount; } //设置并修正当前页码, public void setCurrentPage(int currentpage) { //校验当前页码 if (currentPage>this.pageCount) this.currentPage=this.pageCount; else if (currentPage<1) this.currentPage=1; else this.currentPage=currentpage; } //获取当前页码 public int getCurrentPage() { return this.currentPage; } //获取全部记录数 public int getTotalCount() { return this.totalCount; } //设置总共记录数 public void setTotalCount(int totalcount) { this.totalCount =totalcount; //设置总共记录数后,同时需要校正计算总页数 this.pageCount=(this.totalCount-1)/this.pageSize+1; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; //设置每页显示的记录个数后 同时需要校正计算后的总页数 this.pageCount=(this.totalCount-1)/this.pageSize+1; } }
okay,然后我们开发一个接口 SpiltPage,接口中共有两个方法。
package com.longweir; //任何业务逻辑类只要实现了该接口 就可以进行数据的分页显示 import java.util.*; import com.longweir.*; public interface SpiltPage { //根据分页对象中的参数 来分页获取数据 public Collection getPageData(PageBean pagebean) throws Exception; //获取所有的记录个数 public int getAvailableCount() throws Exception; }
这样以来,主要的关于分页的方法就完成了,我们开发一个针对数据库表操作的业务逻辑类 ProductUtil,来实现上述接口
下面这个类用来操作product表的数据,将分页或所有数据:
package com.longweir; /* * 此类包含所有的产品信息的操作业务逻辑 * */ import java.io.*; import java.sql.*; import java.util.*; import com.longweir.SpiltPage; import com.longweir.bean.ProductInfoVOBean; import com.longweir.util.DatabaseConnection; public class ProductUtil implements SpiltPage { private Connection conn; //重写无参构造方法来获取数据库连接 public ProductUtil() { this.conn=DatabaseConnection.getConnection(); //获取数据库连接对象 } //实现接口中的方法 来分页获取数据显示 public Collection getPageData(PageBean pagebean) throws Exception { Statement stmt=null; ResultSet rs=null; Collection ret=new ArrayList(); if (conn.isClosed()) conn=DatabaseConnection.getConnection(); String sqlstr="select * from productInfo order by productid limit "+(pagebean.getCurrentPage()-1)*pagebean.getPageSize()+","+pagebean.getPageSize(); try { stmt=conn.createStatement(); rs=stmt.executeQuery(sqlstr); while (rs.next()) { ProductInfoVOBean productInfo=new ProductInfoVOBean(); productInfo.setCategoryid(rs.getString("catid")); productInfo.setProductname(rs.getString("productName")); productInfo.setProductid(rs.getString("productid")); productInfo.setPublishment(rs.getString("publishment")); productInfo.setPrice(rs.getFloat("price")); productInfo.setDescription(rs.getString("descn")); ret.add(productInfo); } stmt.close(); rs.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return ret; } //实现接口方法 获取记录的总共个数 public int getAvailableCount() { Statement stmt=null; ResultSet rs=null; int counter=0; try{ if (conn.isClosed()) conn=DatabaseConnection.getConnection(); stmt=conn.createStatement(); rs=stmt.executeQuery("select count(*) from productInfo"); while (rs.next()) { counter=rs.getInt(1); } stmt.close(); rs.close(); conn.close(); } catch (Exception e){} return counter; }
分页的关键技术就是mysql中的这条分页查询语句:
"select * from productInfo order by productid limit "+(pagebean.getCurrentPage()-1)*pagebean.getPageSize()+","+pagebean.getPageSize();
开发一个viewProduct.jsp的页面,来分页显示数据:
<%@ page contentType="text/html;charset=GBK"%> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="com.longweir.bean.*" %> <jsp:useBean id="product" class="com.longweir.ProductUtil" scope="session" /> <jsp:useBean id="pagebean" class="com.longweir.PageBean" scope="session" /> <html> <head> <title>查看所有的产品的信息</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <h3 align="center">查看所有的产品信息</h3> <table width="960" align="center" border="0" cellpadding="2" cellspacing="1" bgcolor="#999999"> <tr bgcolor="#EFEEED"> <td width="100">商品编号</td> <td width="100">类别</td> <td width="200">名称</td> <td width="100">出版商</td> <td width="80">售价</td> <td width="200">描述</td> <td colspan="2" width="100" align="center">管理</td> </tr> <% String temppage=request.getParameter("page"); int pno=1; if (temppage!=null && !("").equals(temppage)) { try { pno=Integer.parseInt(temppage); //获取提交的页面编号 } catch (Exception e) { pno=1; //有异常 则直接跳转到首条 } } //每次刷新页面时都应当重新获得表中的记录数,因为翻页过程中表的记录可能随时都会更新 pagebean.setTotalCount(product.getAvailableCount()); pagebean.setCurrentPage(pno); %> <% Collection products=product.getPageData(pagebean); //分页显示 Iterator it=products.iterator(); while (it.hasNext()) { ProductInfoVOBean temp=(ProductInfoVOBean)it.next(); out.println("<tr bgcolor=\"#FFFFFF\">"); out.println("<td>"+temp.getProductid()+"</td>"); out.println("<td>"+temp.getCategoryid()+"</td>"); out.println("<td>"+temp.getProductname()+"</td>"); out.println("<td>"+temp.getPublishment()+"</td>"); out.println("<td>"+temp.getPrice()+"</td>"); out.println("<td>"+temp.getDescription()+"</td>"); out.println("<td algin=\"center\">"+"<a href=#>修改</a>"+"</td>"); out.println("<td align=\"center\">"+"<a href=\"/product/servlet/DeleteProductServlet?productid="+temp.getProductid()+"\">删除</a</td>"); out.println("</tr>"); } %> </table> <table width="960" align="center" border="0" cellpadding="1" cellspacing="2"> <tr> <td></td> <tr> <tr> <td align="right"> 共<%=pagebean.getPagecount()%>页 <% for (int i=1;i<=pagebean.getPagecount();i++) out.println("<a href=/product/viewProduct.jsp?page="+i+">"+i+"</a>"); %> </td> </tr> </table> </body> </html>
jsp中有很多java代码,可以考虑使用标签代替现实 呵呵。
分页的效果如下啦:
发表评论
-
rerrtert
2010-08-26 15:49 18rew -
MyEclipse 快捷键大全!
2009-12-31 21:12 1678Ctrl+1 快速修复 Ctrl+D: 删除当前行 Ctrl ... -
JfreeChart中文乱码解决方案
2009-12-31 14:30 2323原帖地址:http://blog.csdn.net/wangh ... -
【转载】实施Dbutils
2009-12-04 17:01 1826JDBC码是Java译码的一个部分,它给已写的编码带来了数量惊 ... -
使用三方数据库连接池 Commons DBCP
2009-11-28 11:17 4126本内容转帖,原文地址:http://www.iteye.com ... -
读源码学习 Servlet过滤器
2009-11-26 15:09 2402过滤器在Servlet2.3中规范的,能够对Servlet容器 ... -
javaBean为什么要实现Serializable接口?
2009-11-18 11:37 1239Java的"对象序列化"能让你将一个实现了 ... -
使用JSP标签实例 实现Tag接口
2009-10-30 15:47 3452创建的标签类,必须实现javax.servlet.jsp.ta ... -
读源码学jsp自定义标签 (2) IteataionTag接口
2009-10-29 23:48 1354IterationTag接口继承了Tag接口,增加了一个方法和 ... -
读源码学jsp自定义标签 (1) Tag接口
2009-10-29 22:58 2164最近开始学些jsp的自定 ... -
读源码学Servlet(2)Servlet实现的ServletConfig接口的应用
2009-10-24 12:20 1925GenericServlet抽象类实现了ServletConf ... -
关于jsp页面中文字符集的设置
2009-10-24 11:29 2309为解决JSP中显示中文乱码的问题,一般我们在HttpRespo ... -
读源码学Servlet(5)GenericServlet中的service 方法
2009-10-23 16:36 2257观察GenericServlet源码中关于service()方 ... -
读源码学Servlet(4)关于覆盖GenericServlet的Init()方法
2009-10-23 16:17 3514之前提到servlet 生命周期中的三个阶段,第一个阶段中se ... -
读源码学Servlet(3)Servlet的生命周期
2009-10-23 15:31 2001在javax.servlet.Servlet接口中,定义了针对 ... -
读源码学Servlet(1)GenericServlet 源码分析
2009-10-23 14:05 5560Servlet API的核心就是javax.servlet.S ... -
SVN 客户端使用培训
2009-09-03 18:10 1141最近公司上SVN版本控制系统,今天给他们做了一次培训。 讲的 ... -
servlet中service doGet doPost 的关系
2009-08-25 23:25 6585在servlet中默认情况下 ... -
JavaBean的作用域
2009-08-19 01:18 1016等待添加~~ -
JavaBean使用之基本规范
2009-08-19 01:12 1503JavaBean是一种特殊的Java类,他遵从一定的设计模式, ...
相关推荐
在Web开发中,数据库分页是一项常见的需求,它能够帮助我们有效地管理大量数据,提高页面加载速度,并提供更好的用户体验。本教程将详细讲解如何使用JSP(JavaServer Pages)配合JavaBean来实现MySQL数据库的子查询...
**jsp真分页技术在MySQL数据库中的应用** 在Web开发中,当数据量较大时,一次性加载所有数据可能会导致页面加载速度慢,用户体验下降。此时,分页技术就显得尤为重要。"jsp真分页"是一种在JavaServer Pages (JSP) ...
在Java Web应用中,结合JSP(JavaServer Pages)和JDBC(Java Database Connectivity)可以轻松实现数据库分页功能。本篇文章将深入探讨如何在MySQL数据库上进行真分页的实现。 首先,理解什么是“真分页”。真分页...
在这个特定的笔记中,我们将探讨如何结合DAO(Data Access Object)模式以及MySQL数据库来实现分页功能。 **JSP+DAO分页** JSP+DAO模式是Web开发中常用的一种方式,其中JSP负责展示数据,而DAO负责与数据库交互。...
本主题将深入探讨如何在JSP中利用数据库实现页面分页,并涉及存储过程、Servlet以及Oracle和MySQL数据库的分页策略。 首先,我们要理解JSP(JavaServer Pages)是一种基于Java的动态网页技术,它可以嵌入Java代码来...
JSTL 实现 JSP 分页显示数据代码(MySQL 数据库) 本文将详细讲解如何使用 JSTL 实现 JSP 分页显示数据代码,并使用 MySQL 作为数据库。该代码不仅提供了分页显示数据的功能,还提供了数据库和表的创建代码。 标题...
标题中的"jsp +mysql+分页"涉及到的是Web开发中的几个关键概念,主要集中在Java服务器页面(JSP)、MySQL数据库以及分页技术的应用。这里我们将深入探讨这些知识点。 首先,JSP(JavaServer Pages)是一种动态网页...
本文将详细介绍如何在Java开发环境中,结合MyEclipse IDE和Tomcat服务器,配置MySQL数据库并实现查询结果显示在JSP网页中。这个过程对于任何Java Web开发者来说都是基本技能,能够帮助你构建动态的Web应用程序。 ##...
本主题聚焦于Java Web开发中的分页技术,主要涉及两个方面:JSP(JavaServer Pages)结合DAO(Data Access Object)模式以及MVC(Model-View-Controller)框架下的DAO实现,两者均与MySQL数据库进行交互,实现数据的...
在这个“Ajax Jsp 连接MySQL数据库”的主题中,我们将深入探讨如何在JSP页面上利用Ajax技术与后台MySQL数据库进行交互,同时处理多个Ajax请求。 首先,让我们了解基本概念。Ajax的核心是通过JavaScript向服务器发送...
在本示例中,首先需要建立JSP与SQL数据库之间的连接。这一步骤通过以下步骤完成: 1. **加载驱动**:使用`Class.forName()`方法加载JDBC-ODBC桥接驱动`sun.jdbc.odbc.JdbcOdbcDriver`。 ```java Class.forName(...
【标题】"jsp、servlet (mysql 数据库)购物网站" 涉及的主要知识点包括JSP(JavaServer Pages)、Servlet、CSS以及MySQL数据库。这是一个基于Web的电子商务平台,提供了全面的购物体验,包括用户注册登录、购物车...
【标题】"jsp+mySql 真假分页"涉及了Web开发中的两种常见分页技术:真分页和假分页。这两种方法在处理大量数据时特别有用,能够提高网页加载速度,优化用户体验。 **一、真分页** 真分页(Physical Pagination)是...
下面我们将详细探讨如何在Java Web应用中实现数据库分页,并结合JSP页面进行展示。 首先,我们需要理解分页的基本概念。分页通常涉及两个关键参数:当前页码(Page Number)和每页记录数(PageSize)。例如,如果...
本教程将深入讲解如何使用JavaServer Pages(JSP)结合Servlet和MySQL数据库来实现分页功能。 首先,我们需要了解JSP的基本概念。JSP是一种基于Java的动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,从而...
本教程将聚焦于使用JavaServer Pages(JSP)结合MySQL数据库实现分页技术。 首先,我们需要理解JSP的基础。JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,以实现服务器端的逻辑处理。在JSP中,...
在Struts1.2中实现MySQL数据库分页,主要涉及以下几个关键知识点: 1. **Action类**:在Struts1.2中,业务逻辑通常由Action类处理。你需要创建一个Action类,该类负责接收用户的请求参数,如当前页数和每页显示的...
2. **编写SQL查询**:在服务器端,使用JDBC(Java Database Connectivity)连接到MySQL数据库,编写SQL查询语句。例如,获取第一页的10条数据: ```sql SELECT * FROM users LIMIT 10 OFFSET 0; ``` `LIMIT`指定...
本篇文章将详细介绍如何在不同的数据库系统中实现分页,包括JAVA、JSP环境下的数据库分页实现,以及Oracle、SQL Server、MySQL、DB2等数据库的分页查询方法。 在Java和JSP中,分页通常涉及到后端服务器和前端页面的...