`
aa00aa00
  • 浏览: 331449 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

一个很好用的jsp分页Bean

阅读更多
import java.sql.*;
import beans.DBManager;

public class Page {
Connection conn = null;
Statement stmt = null;
ResultSet CountTopicrs = null; //初始化总记录数Rs变量
ResultSet Pagirs = null; //初始化分页时每页的记录集数Rs变量
public static void main(String[] args) ...{}
private int intCountTopic = 0; //主题总数,即select选出的、库中所有记录总数
public int intPageSize; //每页显示主题数,即每页显示的记录总数
public int intPageCount; //总页数
public int intPage = 0; //当前页数
private String Countsql = null,Pagisql = null,str = null,str_where = null;
private String str_parameter = "";
//public static int pages_n=1; //传分页参数值

private String nowPage; //初始化当前页intPage变量,以准确便获取当前页,即获取当前页的具体页号。
private String HttpFile; //当前的地址栏的文件,即具体jsp文件。

//连接数据库
public Page(){
try{
this.conn=DBManager.getConnection();
this.stmt=conn.createStatement();
}catch(Exception e){
e.printStackTrace();
}
}

//接收传分页参数
public void setPages(int n) ...{
intPageSize = n;
}

public String getPagisql() ...{
return Pagisql;
}

/**//*功能:接收参数组织SQL语句
*str_table :分页显示的表名
*str_where:分页的where条件
*httpfile :具体jsp文件
*pages :获取地址栏传过来的pages参数
*/
public ResultSet setQuerysql(String str_table,String str_where,String httpfile,String pages)
throws SQLException ...{
ResultSet r = null;
this.nowPage = pages;
this.HttpFile = httpfile; //分页文件名

Countsql = "select count(*) from " + str_table + " " + str_where;
Pagisql ="select * from "+ str_table+ " " + str_where;
try ...{
r = querySql(Countsql, Pagisql);
} catch (SQLException _ex) ...{
System.out.println(_ex);
}
return r;
}

/**//*功能:接收参数进行首尾页判断
*Countsql:总记录的Query字符串。[形式为select count(*) from tablename]
*Pagisql :要分页的Query字符串。[形式为select * from tablename where ...]
*request :参数传递过程中的变量。[用来控制翻页时的pages变量]
*/
public ResultSet querySql(String Countsql,String Pagisql) //,HttpServletRequest request
throws SQLException ...{
//获取当前文件名。
//HttpFile=request.getRequestURI();
//获取当前页,将数值赋予intPage变量。[分页栏中必须要有pages参数]
//nowPage=request.getParameter("pages");//由参数HttpServletRequest request传递而来

if (nowPage == null) ...{
intPage = 1;
} else ...{
intPage = Integer.parseInt(nowPage);
if (intPage < 1)
intPage = 1;
} //end else

//获取总记录数的结果集。

CountTopicrs = this.stmt.executeQuery(Countsql);
if (CountTopicrs.next()) ...{
intCountTopic = CountTopicrs.getInt(1); //获取第一个字段的整型
}
//获取总页数。
intPageCount = (intCountTopic + intPageSize - 1) / intPageSize;
//如果当前页大于总页数,则当前页等于总页数。//=最后一页
if (intPage > intPageCount) ...{
intPage = intPageCount;
}
//关闭总主题数的数据集。
CountTopicrs.close();

//获取执行分页的结果集。
Pagirs = this.stmt.executeQuery(Pagisql);
return Pagirs;
} //end querySql function.

//获取记录总数。
public int getCountTopic() ...{
return intCountTopic;
}

//获取总页数。
public int getPageCount() ...{
return intPageCount;
}

//获取当前页数。
public int getIntPage() ...{
return intPage;
}

//获取当前页的数据。boodata为True,表示要加入该数据到当前页。
//这里可能会在JSP调用时影响速度[因为调用时要多一层循环],因此放到JSP中嵌入,待改进。
//该代码暂时保留。
// public boolean getData(){
// boolean boodata=false;
// if (intPageCount>0)
// {
// try
// {
// while (Pagirs.next())
// {
// i++;
/**//// if (i>((intPage-1)*intPageSize) &&(i<=intPage*intPageSize))
// {
// boodata=true;
// }
// } //endwhile.
// }//end try.
// catch(Exception e){
// System.out.println(e.toString());
// }
// } //endif.
// return boodata;
// } //end getData();

//设置分页参数
public void setPfoot(String str) ...{
this.str_parameter += str;
}

//分页栏函数。
public String PageFooter() ...{
String str = "<form action=" + HttpFile + " name=form1 methord=post>";
int next, prev;
prev = intPage - 1;
next = intPage + 1;
str += "<font style='font-size: 9pt'>总计<font color='red'>"
+ getCountTopic()
+ "</font>条记录,"
+ "【共<font color='red'>"
+ getPageCount()
+ "</font>页】";
str += "【条"
+ intPageSize
+ "/页】 当前第<font color='red'>"
+ getIntPage()
+ "</font>页(列出第"
+ ((intPageSize * getIntPage() + 1) - intPageSize)
+ "到第"
+ (getIntPage() * intPageSize)
+ "条) &nbsp; &nbsp; ";
//getIntPage()*intPageSize
if (intPage > 1)
str += " <A href="
+ HttpFile
+ "?pages=1"
+ str_parameter
+ ">第一页</A> ";
else
str += " 第一页 ";

if (intPage > 1)
str += " <A href="
+ HttpFile
+ "?pages="
+ prev
+ str_parameter
+ ">上一页</A> ";
else
str += " 上一页 ";

if (intPage < intPageCount)
str += " <A href="
+ HttpFile
+ "?pages="
+ next
+ str_parameter
+ ">下一页</A> ";
else
str += " 下一页 ";

if (intPageCount > 1 && intPage != intPageCount)
str += " <A href="
+ HttpFile
+ "?pages="
+ intPageCount
+ str_parameter
+ ">最后页</A>";
else
str += " 最后页 </font>";
str
+= " 转到<INPUT TYPE='text'NAME='pages' size='2'>页 <input type='submit' name='Submit' value='go'></form>";
return str;
}
//关闭数据库连接
public void closeConn() ...{
try...{
if(CountTopicrs!=null) CountTopicrs.close();
if(Pagirs!=null) Pagirs.close();
this.stmt.close();
this.conn.close();
}catch(Exception e)...{
e.printStackTrace();
}
}

} //end.

**********************************************************

<%@ page contentType="text/html; charset=GBK" import="java.sql.*,java.util.*" %>
<jsp:useBean id="pagi" scope="page" class="beans.Page"></jsp:useBean>
<html>
<head>
<title>
agentPage
</title>
</head>
<body bgcolor="#ffffff">
<table>
<%
String nowPage="";
String str_where="";
String footer="";
String id="",cuclass="",parentclass="",author="",title="",d="";
nowPage=request.getParameter("pages");
if(nowPage==null||nowPage.equals("null"))...{
nowPage="0";
}
pagi.setPages(3);
try...{
ResultSet rs=pagi.setQuerysql("agent",str_where,"agent_page.jsp",nowPage);
footer=pagi.PageFooter();
out.print(footer);
if(pagi.intPageCount>0)...{
int i=0;
while(rs.next())...{
i++;
if(i>((pagi.intPage-1) * pagi.intPageSize)&&(i<=pagi.intPage*pagi.intPageSize))...{
id=rs.getString("AgentId")+"";
parentclass=rs.getString("AgentClass")+"";
cuclass=rs.getString("AgentSubClass")+"";
d=rs.getString("AgentNewProduct")+"";
title=rs.getString("AgentSf")+"";
author=rs.getString("AgentCorpName")+"";
%>
<tr>
<td><%=id%></td>
<td><%=parentclass%></td>
<td><%=cuclass%></td>
<td><%=d%></td>
<td><%=title%></td>
<td><%=author%></td>

</tr>
<%
}
}
}
rs.close();
}catch(Exception e)...{
e.printStackTrace();
}finally...{
pagi.closeConn();
}

%>
</table>

</body>
</html>
**********************************************************

import java.sql.*;
import java.io.*;
//连接数据库的工具类

public class DBManager ...{

public static Connection getConnection()...{
Connection conn = null;
String CLASSFORNAME = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String DBURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=txyao";
String USER = "txyao";
String PWD = "txyao";
try...{
Class.forName(CLASSFORNAME);
conn = DriverManager.getConnection(DBURL,USER,PWD);
}catch(Exception e)...{
e.printStackTrace();
}
return conn;
}
}
分享到:
评论

相关推荐

    jsp+sql +bean 分页

    通过jsp 技术实现分页技术 更加有效的便于查询 简单的数据库创建

    jsp分页bean

    **JSP分页Bean**是Java Web开发中一个常见的组件,用于处理大量数据的展示问题。在网页上显示成百上千的数据一次性加载不仅会影响用户体验,也会对服务器性能造成压力。因此,分页技术应运而生,它允许用户逐页浏览...

    简单的分页组件(jsp,bean)

    本项目以"简单的分页组件(jsp,bean)"为主题,通过jsp(JavaServer Pages)和bean(JavaBean)技术实现了一个基础的分页功能。 首先,我们来理解一下jsp和bean在Web开发中的角色。JSP是Java的一种动态网页技术,...

    jsp bean 分页实现

    1. **设计Bean**:创建一个JavaBean类,比如`PageBean`,包含当前页码、每页显示的记录数、总记录数、总页数等属性,并提供相应的getter和setter方法。此外,还可以添加一个方法用于计算总页数,基于总记录数和每页...

    Jsp+bean 实战分页教程

    在JSP页面中,通过`&lt;jsp:useBean&gt;`指令引入分页Bean和数据库连接Bean,然后调用相关方法来获取和展示数据。例如: 1. 获取总记录数:`myCon.myQuery("SELECT COUNT(*) FROM table")`。 2. 计算总页数:`handlePage....

    jsp分页循环显示

    4. **封装数据**:将查询结果封装成Java对象,例如一个ArrayList或者自定义的Bean类,方便在JSP页面上进行循环展示。 5. **设置请求属性**:将数据对象设置为请求属性,以便传递到JSP页面。 6. **转发到JSP**:...

    纯JSP分页代码

    通过以上步骤,我们就可以实现一个基本的纯JSP分页功能。然而,实际项目中,通常会使用更高级的技术,如Servlet、Spring MVC或者前端框架,以提高代码可维护性和性能。但了解纯JSP的实现方式对于学习Web开发的基础...

    可重用的分页Bean

    "可重用的分页Bean"是一个设计精良的组件,它基于经典的三层架构(表现层、业务逻辑层、数据访问层)来实现,可以方便地在JSP MVC(模型-视图-控制器)框架中复用,提高代码的可维护性和效率。在这个PageBeanDemo中...

    Java _ JSP分页Demo

    在Java Web开发中,JSP...总之,"Java _ JSP分页Demo"是一个很好的学习资源,可以帮助开发者掌握如何在Java Web应用中使用JSP、Servlet和MVC模式进行数据分页处理。通过实际操作,可以提升对这些技术的理解和应用能力。

    很好的一个jsp分页

    1. **JSP分页**:JSP分页是指在Web应用程序中,为了提高用户体验,将大量数据分成多个页面进行显示的技术。它主要用于处理数据量较大的查询结果,避免一次性加载所有数据导致页面响应慢或者浏览器崩溃。 2. **数据...

    jsp分页 上传文件

    总结,JSP分页涉及数据库操作和前端渲染,而文件上传则需要处理HTTP的多部分数据和文件保存。两者都依赖于Java的面向对象特性以及相应的库支持,如`Commons FileUpload`。在实际开发中,我们还需要考虑性能优化、...

    jsp实现分页功能

    在网页开发中,分页功能是一项非常常见的需求,特别是在数据量较大的情况下,为了提高用户体验,我们需要将大量数据分批次展示,这就是...但无论哪种方式,了解基础的jsp分页原理对于Web开发人员来说都是非常重要的。

    使用jsp实现分页显示

    创建一个JSP页面,用来展示分页的导航链接。这些链接通常包含上一页、下一页以及页码选择器。你可以用HTML和CSS来构建页面布局,然后使用JSP脚本来生成动态链接。例如: ```jsp (currentPage &gt; 1) { %&gt; &lt;li&gt;...

    分页的辅助Bean

    分页的辅助bean,实现jsp页面的分页控制

    java+bean分页技术

    总结,Java Bean在JSP分页技术中扮演了关键角色,负责处理数据库查询和数据分页逻辑。通过与JSP页面交互,用户可以方便地浏览和操作大量数据。同时,前端技术如图片无缝滚动和在线人数统计也是提升用户体验的重要...

    jsp 分页 eclipse

    通过以上步骤和示例代码,你可以在Eclipse中实现一个基本的JSP分页功能。记住,实际项目中可能需要根据具体需求进行调整和扩展。在开发过程中,确保遵循良好的编程实践,如代码复用、错误处理和注释,以保持代码的...

    基于JSP分页技术的研究

    ### 基于JSP分页技术的研究 #### 一、引言 随着互联网技术的发展,特别是电子商务领域的兴起,Web应用程序需要处理的数据量急剧增加。面对海量数据的展示需求,如何高效、合理地呈现给用户成为了关键技术之一。...

    jsp实现分页案例

    - 在Java后端,通常会有一个Servlet或Controller处理HTTP请求,这里可能包含一个`doGet()`方法,解析请求中的页码参数,然后调用上述的分页逻辑,将结果传递给JSP。 4. **JSP页面**: - **显示数据**:在JSP中,...

    纯JSP +JDBC实现分页

    以下是一个简单的分页实现步骤: 1. **连接数据库**:使用`Class.forName()`加载JDBC驱动,然后通过`DriverManager.getConnection()`建立数据库连接。 2. **准备SQL语句**:根据用户请求的页码和每页大小,计算出...

    tomcat+mysql+jsp 分页查询

    在Web开发中,"Tomcat+MySQL+JSP"是一个常见的技术栈,用于构建动态、交互式的网页应用。本教程将深入讲解如何利用这三种技术实现分页查询,这对于处理大量数据并优化用户体验至关重要。 首先,`Tomcat`是Apache...

Global site tag (gtag.js) - Google Analytics