jsp实现分页显示的功能

时间:2021-09-02 06:35:42

<!--这个html页面主要是用来向MyJsp.jsp页面提交一个输入的参数用于从数据库查找数据-->

<html>
<body>
<form method="post" action="http://127.0.0.1:8080/DB2/MyJsp.jsp">
<input type="text" size="20" name="name"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>

 

<!--以下是处理提交的数据的MyJsp.jsp页面,并且把从数据库查找到的东西分页显示-->

<!--在此主要是实现分页功能,并且可以传递参数到下一页-->
<%@ page contentType="text/html;charset=gb2312"%>

<%@page language="java" import="java.sql.*" %> 

<%@page language="java" import="java.util.*" %>

<%@page language="java" import="java.lang.*" %>

 <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

     <title>数据库内容显示</title>

   </head>

   

<% //变量声明

Connection conn; //数据库连接对象

Statement stmt; //SQL语句对象

ResultSet rs; //结果集对象

String strCon; //数据库连接字符串

 //SQL语句

int intPageSize; //一页显示的记录数

int intRowCount; //记录总数

int intPageCount; //总页数

int intPage; //待显示页码

String strPage;

int i;

//设置一页显示的记录数

intPageSize = 3;

//取得待显示页码

strPage = request.getParameter("page");

 

if(strPage==null||strPage==""){//表明在QueryString中没有page这一个参数,此时显示第一页数据

intPage = 1;

}

else{//将字符串转换成整型

 

intPage = java.lang.Integer.parseInt(strPage);

 

//if(intPage<1) intPage = 1;

}

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";   

String url="jdbc:sqlserver://localhost:1433"; 

String user="sa";

String password="100862";

//装载JDBC驱动程序

Class.forName(driver).newInstance();

//设置数据库连接字符串

conn = java.sql.DriverManager.getConnection(url,user,password);

//创建一个可以滚动的只读的SQL语句对象

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

 

String sql;

String name = request.getParameter("name");      //获取页面传来的号码

 

//查询的语句        
sql="select scientProjectName,scientProjectType,scientProjectCategery,contractNo from   Student.dbo.scitificItem where scientProjectName='"+name+"'";


//执行SQL语句并获取结果集

 

rs = stmt.executeQuery(sql);

//获取记录总数

rs.last();//??光标在最后一行

intRowCount = rs.getRow();//获得当前行号

//记算总页数

intPageCount = (intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码

if(intPage>intPageCount) intPage = intPageCount;

%>

   

<body><center>

 <h1 align="center">数据库查询</h1>

<form method="POST">

第<%=intPage%>页 每页<%=intPageSize%>行 共<%=intPageCount%>页

 

<%if(intPage<intPageCount){%>

 

<a href="MyJsp.jsp?page=<%=intPage+1%>&name=<%=name%>">下一页</a><!--把获得的参数name继续传递到下一页-->

 

<%}%>

<%if(intPage>1){%>

<a href="MyJsp.jsp?page=<%=intPage-1%>&name=<%=name%>">上一页</a><!--把获得的参数name继续传递到下一页-->

<%}%>

 

</form>

 

<table border="3" cellpadding="4" bordercolor="#a7a7a7" style="empty-cells: show; border-collapse: collapse;">

<tr bgcolor="#999999">

<th>名称</th>

<th>类型</th>

<th>类别</th>

<th>编号</th>


</tr>

 

<%if(intPageCount>0){

  //将记录指针定位到待显示页的第一条记录上

  rs.absolute((intPage-1) * intPageSize + 1);

  //显示数据

  i = 0;

  String date,haoma,mingcheng,shuliang,beizhu;

  while(i<intPageSize && !rs.isAfterLast()){

  date=rs.getString(1);

  haoma=rs.getString(2);

  mingcheng=rs.getString(3);

  shuliang=rs.getString(4);

 %>

 

<tr>

<td><%=date%></td>

<td><%=haoma%></td>

<td><%=mingcheng%></td>

<td><%=shuliang%></td>

 

</tr>

 

<%rs.next();

  i++;

  }

}%>

</table>

 </center>

<%//关闭结果集

  rs.close();

  //关闭SQL语句对象

  stmt.close();

  //关闭数据库

  conn.close();%>

</body>

</html>

说明:如有不明白的地方 请留言。我会及时回答。谢谢!