`

在JSp中直接使用分页

    博客分类:
  • Java
阅读更多
没事出来逛逛。。。。。。今天逛出个分页。。呵呵   虽然技术不是太好。但是绝对原创!
可惜只能写在JSP中,02年的老系统,时下流行的框架技术其他的都不支持,只能使用JSP+JavaBean。苦
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> 
<%@page import="com.info.Info"%> 
<%@page import="com.info.InfoDB"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <base href="<%=basePath%>"> 
    
    <title>My JSP 'index.jsp' starting page</title> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
<meta http-equiv="description" content="This is my page"> 
<style> 
.xl24 
{mso-style-parent:style0; 
background:silver; 
mso-pattern:auto none;} 
</style> 
  </head> 
  <% 
  
  int intPageCount = 0;//总页数 
  int intPage = 0;//当前页数 
  String myPage = request.getParameter("page");//得到请求发来的page 页数 
  if( myPage==null || myPage.equals("") ) {//判断 page值 
  intPage = 1; 
  }else{ 
  //page 值 正常 
  intPage = Integer.parseInt(myPage); 
  } 
  Info info  = null; 
  int count  =40;//每页多少条 
  InfoDB infoDB = new InfoDB(); 
  Vector vector = infoDB.getAllVector("");//根据sql语句得到结果集 但会 vector集合 
  int vectorCount = vector.size();//得到总数量 
int showNumber = vectorCount % count;//得到最后显示的条数 
//计算总页数 
if(vectorCount%count==0) 
     { 
        intPageCount=vectorCount/count; 
     } 
     else 
     { 
     //除不尽 余数+1 单独设置一页显示 
     intPageCount=vectorCount/count+1; 
     } 
     //异常情况  当传来页数大于总页数时 修改为最大页数 
     if(intPageCount<intPage){ 
     intPage = intPageCount; 
     } 
   %> 
  <body> 
    <form action="show.jsp?page=" method="post" name="tt"> 
    <table border="1" cellpadding="1" cellspacing="1" > 
        <tr height="17" style='height: 12.75pt' class="formtitle" align="left"> 
        <td class="xl24" width="50" >  序号    </td> 
    <td class="xl24" width="100" >  保单号     </td> 
        <td class="xl24" width="100" > 号牌颜色     </td> 
        </tr> 
    <% 
    int myCount =1;//循环变量 记录当前显示序号 
    int k = 0;//记录下一页要显示的下标 
    //每次都判断一次 记录当前的序号和下标 
    if( intPage>=1 ){ 
    //得到要显示的序号 
     myCount = (intPage * count-count)+1; 
     //得到终止标 
     k = vectorCount-(vectorCount-intPage*count); 
     } 
    for( ; myCount <= k ; myCount++ ) { 
       //判断当前要显示的序号是否 大于 结果集的总条数 
   if(myCount>vectorCount){ 
   break;//跳出 
   }else{ 
   //照常输出 
    info = (Info)vector.get(myCount-1); 
       } 
    %> 
    <tr height="17" style='height: 12.75pt'> 
    <td align="left"><%=myCount%></td> 
    <td align="left"><%=info.getPolicyNo()%></td> 
    <td align="left"><%=info.getLicenseColor() %><td>      
    </tr> 
    <% } %> 
    <tr height="17" style='height: 12.75pt' align="center"> 
    <td colspan="3"><B> 
    <% //只有当总页数大于0的时候才显示 分页组件 
  if( intPageCount > 0 ) { 
  %> 
<u> 第 <%=intPage%> 页  &nbsp;&nbsp;  
<% 
//处理最后一页 《除不尽 余数+1 单独设置一页显示》 
if(intPage==intPageCount){ 
%> 
  本页共 <%=showNumber %> 条 
<% } else {%> 
       本页共 <%=count %> 条 
<% } %>&nbsp;&nbsp;    
共 <%=intPageCount%> 页/共 <%=vectorCount %> 条 </u> <br>   
  <% if( intPage>1 ){ //当 当前页为第二页 显示以后几页操作组件%> 
  &nbsp;&nbsp;<input type="button" value="首  页" onclick="gotoPage(1)"/>  
  &nbsp;&nbsp;<input type="button" value="上一页" onclick="gotoPage(<%=intPage-1 %>)"/> 
  &nbsp;&nbsp;<input type="button" value="尾  页" onclick="gotoPage(<%=intPageCount %>)"/> 
  <% } %>   
    <% if( intPage<intPageCount ){ //当 当前页数小于 最大页数有下一页%> 
  &nbsp;&nbsp; <input type="button" value="下一页" onclick="gotoPage(<%=intPage+1 %>)"/> 
  <% } %>   
&nbsp;&nbsp;<font color="red">转到 第<input name="page" id="myPage" size="2">页</font><input type="button" onclick="gotoPage('go')" value="GO"> 
  <% } %></B> 
    </td> 
    </tr> 
    </table> 
    <script type="text/javascript"> 
    <!--分页调用的JS方法 ---> 
    function gotoPage(myPage){ 
    var page = document.getElementById("myPage").value; 
    var pageCount = <%=intPageCount%> 
    if(myPage=="go"){ 
    if( page==0 || page > pageCount || isNaN(page) ){ 
    document.getElementById("myPage").value = ""; 
    alert("请输入正确的页码! 最大为 <"+pageCount+"> 页!"); 
    }else{ 
    tt.submit(); 
    } 
    }else{ 
    <!--处理不是点击 GO按钮 提交时操作 ---> 
    tt.action="show.jsp?page="+myPage; 
    tt.submit(); 
    } 
    } 
    </script> 
    </form> 
    <a href="index.jsp"> 返回 </a> 
  </body> 
</html> 


 

 

/**
	 * 根据sql语句判断查询条件
	 * @param sqlString
	 * @return
	 */
	public Vector getVector(String sqlString){
		Vector vector = new Vector();
		Connection connection = null;
		Statement st = null;
		ResultSet resultSet = null;
		Info info = null;
		try {
			String url = "jdbc:oracle:thin:@10.0.2.12:1521:db12";
			String user = "prp";
			String password = "prp";
			Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
			connection = DriverManager.getConnection(url, user, password);
			st = connection.createStatement();
			resultSet = st.executeQuery(myString);
			while (resultSet.next()) {
				info = new Info();				
				info.setPolicyNo(resultSet.getString("policyNo"));// 保单号
				info.setLicenseNo(resultSet.getString("licenseNo"));// 车牌号
				info.setEngineNo(resultSet.getString("engineNo"));// 发动机号
				if (null != resultSet.getString("frameNo")) {
					info.setFrameNo(resultSet.getString("frameNo"));// 车架号
				} else {
					info.setFrameNo(" ");
				}
				info.setClaimNoConut(resultSet.getString("claimNoConut"));// 事故次数
				info.setLicenseColor(resultSet.getString("licenseColor"));// 车号牌颜色				
				vector.add(info);
			}
		} catch (SQLException e) {			
			e.printStackTrace();
		} catch (InstantiationException e) {			
			e.printStackTrace();
		} catch (IllegalAccessException e) {			
			e.printStackTrace();
		} catch (ClassNotFoundException e) {			
			e.printStackTrace();
		}finally{
			try {
				st.close();
				resultSet.close();
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return vector;
	}

 

	/***
	 * 分页用到的查询方法
	 * @param pageNumber
	 * @return
	 */
	public Vector getPageVector(int pageNumber,int pageCount,String string){
		String addString = "SELECT * FROM(SELECT ROWNUM RN,TA.*FROM(" +myString+ ")TA WHERE " +
							"ROWNUM <= "+pageNumber+" * "+pageCount+" )WHERE RN > ("+pageNumber+"-1) * "+pageCount+" ";
		return getVector(addString);
	}
	
	/**
	 * 得到所有
	 * @return
	 */
	public Vector getAllVector(String string){
		return getVector(string);
	}

 

String addString = "SELECT * FROM(SELECT ROWNUM RN,TA.*FROM(" +myString+ ")TA WHERE " +
							"ROWNUM <= "+pageNumber+" * "+pageCount+" )WHERE RN > ("+pageNumber+"-1) * "+pageCount+" ";

 

	 //计算总页数
	 if(vectorCount%count==0)
     {
        intPageCount=vectorCount/count;
     }
     else
     {
     	//除不尽 余数+1 单独设置一页显示
     	intPageCount=vectorCount/count+1;
     }
     //异常情况  当传来页数大于总页数时 修改为最大页数
     if(intPageCount<intPage){
     	intPage = intPageCount;
     }

 

<%
    				int myCount =1;//循环变量 记录当前显示序号
    				int k = 0;//记录下一页要显示的下标
    				//每次都判断一次 记录当前的序号和下标
    				if( intPage>=1 ){
    					//得到要显示的序号
				     	myCount = (intPage * count-count)+1;
				     	//得到终止标
				     	k = vectorCount-(vectorCount-intPage*count);
				     }
    				for( ; myCount <= k ; myCount++ ) {
    				   //判断当前要显示的序号是否 大于 结果集的总条数
					   if(myCount>vectorCount){
					   		break;//跳出
					   }else{
					   		//照常输出		
    						info = (Info)vector.get(myCount-1);
    				   }					
    			 %>

 以下是 oracle10G的架包.

分享到:
评论

相关推荐

    jsp中如何实现分页功能

    本文将详细介绍如何在JSP中实现分页功能,主要涉及以下几个方面: 1. **理解分页原理**:分页的基本原理是将大数据集分割成若干个小部分,每次只加载一部分到客户端。在JSP中,我们需要知道当前页码和每页显示的...

    jsp中数据库在页面分页的实现

    本主题将深入探讨如何在JSP中利用数据库实现页面分页,并涉及存储过程、Servlet以及Oracle和MySQL数据库的分页策略。 首先,我们要理解JSP(JavaServer Pages)是一种基于Java的动态网页技术,它可以嵌入Java代码来...

    封装好直接使用的jsp分页插件

    "封装好直接使用的jsp分页插件"正是一款针对这一需求设计的工具,它能够简化开发过程,使开发者能够快速实现分页功能,而无需关注底层复杂的逻辑。 该插件适用于jsp与servlet的原生组合,同时对流行的SSH(Struts2 ...

    jsp假分页技术jsp假分页

    - 在SQL查询中添加LIMIT和OFFSET子句,直接在数据库层面完成分页,避免一次性加载所有数据。 6. **注意事项**: - 对于用户输入的页码,需要进行有效性验证,防止越界或恶意攻击。 - 考虑到用户可能会直接访问...

    Jsp+Servlet+MyBatis完成分页查询

    5. **Servlet处理结果并响应**:Servlet获取到服务类返回的分页数据后,可以将其封装成一个ModelAndView对象,或者直接在HttpServletResponse对象中设置响应内容,然后返回到JSP页面进行渲染。 6. **更新JSP页面**...

    jsp+servlet 分页

    在分页中,Servlet主要负责接收用户的请求(例如,请求第几页的数据),处理这些请求,从数据库获取对应的数据,然后将数据传递回JSP进行渲染。 三、分页实现步骤 1. **计算总页数**:根据数据库中的数据总量和每页...

    纯JSP实现真分页

    【标题】"纯JSP实现真分页"指的是在Web应用开发中,仅使用Java Server Pages(JSP)技术来实现动态数据的分页显示功能,而没有借助其他后端编程语言如Java Servlet或者框架的帮助。这样的实现方式有助于简化开发流程...

    目前最好的JSP分页技术

    在JSP中,有几种常见的分页实现方式,包括自定义标签、Servlet、AJAX以及使用现有的开源框架如Spring MVC和Struts2等。 1. 自定义标签:自定义标签是JSP的一种扩展机制,允许开发者创建自己的标签库来处理特定任务...

    非常好用的jsp分页标签

    3. **JSP+Servlet配合**:在JSP分页中,Servlet通常负责从数据库获取数据并计算总页数,然后将这些信息传递给JSP页面。Servlet通过设置请求属性,例如“totalPages”和“currentPage”,将这些数据暴露给JSP。JSP...

    jsp+mySql 真假分页

    2. `假分页.txt`可能提供了在jsp中使用JavaScript或JSP标签库进行假分页的代码实例,涉及到如何在前端处理大量数据和模拟分页。 3. `readme.txt`可能包含了使用这些代码的说明,如如何导入项目、配置数据库连接等...

    jsp 实现分页+mysql

    在JSP中实现分页,我们通常需要以下步骤: 1. **连接数据库**:使用Java的JDBC(Java Database Connectivity)API来连接MySQL数据库。这包括加载数据库驱动、创建Connection对象、预编译Statement或...

    jsp数据分页源代码

    在实际项目中,这个分页工具可以被直接引入,减少开发工作量。它可能包含一个自定义的JSP标签库(Tag Library),开发者可以通过在页面中引入这个库,然后调用特定的分页标签来实现分页功能。 6. **分页工具的使用...

    jsp+oracle常用分页功能

    5. 分页逻辑:在Servlet或JSP中处理请求,计算开始查询的行号,执行SQL,获取数据并转发到JSP页面。 在提供的"fytest"压缩包中,可能包含了以下五个例子: 1. 基础分页:展示最简单的分页实现,只包含上一页和...

    JSP 简单分页高效率实现

    此外,避免在JSP中直接执行数据库操作,因为这会导致JSP页面过于复杂,且可能影响性能。将业务逻辑和数据处理放在Servlet或单独的服务层,保持JSP作为视图层的简洁性。 6. **安全性考虑** 要注意防止用户恶意修改...

    jsp 分页源码.rar

    - 在JSP中,可以使用自定义标签库(Tag Library)或者直接编写Java代码来实现分页。常见的分页组件有JSTL的 `&lt;c:forEach&gt;` 标签,或者自定义的 `PagerTag` 类。 3. **数据库查询**: - 数据的获取通常通过SQL查询...

    java里jsp分页

    这篇博客可能详细介绍了如何在Java中使用JSP进行分页。 分页主要涉及到以下几个关键知识点: 1. **数据库查询**:首先,我们需要根据当前页数和每页显示的条目数量来确定要从数据库中获取的数据范围。这通常通过...

    使用JSP+JavaBean+Servlet实现数据分页

    在分页场景中,JSP通常用于展示分页后的数据。 2. **JavaBean**:JavaBean是一种符合特定规范的Java类,常用于封装数据和业务逻辑。在本案例中,我们可以创建一个JavaBean来存储数据库查询的结果以及分页的相关信息...

    JSP分页插件及其详解

    本文将详细介绍一种常用的JSP分页插件——DisplayTag,并探讨其在实现分页以及登录验证中的应用。 **DisplayTag插件** DisplayTag是一个开源的Java Web分页和表格展示库,它提供了丰富的表格样式和分页功能,极大...

Global site tag (gtag.js) - Google Analytics