JSP 页面实现数据分页

  1 <%@ page import="java.sql.*" %>
  2 <%--
  3   Created by IntelliJ IDEA.
  4   User: lx_sunwei
  5   Date: 14-1-4
  6   Time: 下午5:45
  7   To change this template use File | Settings | File Templates.
  8 --%>
  9 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 10 <%
 11     int maxPage = 0  //一共有多少页
 12             ,maxRowCount     //一共有多少行
 13             ,rowsPerPage     //每页显示多少行
 14             ,curPage;        //当前页页码
 15     Connection conn = null;  //数据库连接对象
 16     Statement st = null;     //SQL语句对象
 17     ResultSet rs = null;     //结果集对象
 18
 19     rowsPerPage = 5;         //设置每页显示5行
 20
 21     String curpage1 = request.getParameter("page");  //取得当前页页码
 22     if (curpage1 == null){  //若没有page参数
 23         curPage = 1;
 24     }else {
 25         curPage = Integer.parseInt(curpage1);  //字符串转换为整数
 26         if (curPage < 1)
 27             curPage = 1;
 28     }
 29
 30     String url = "jdbc:oracle:thin:@localhost:1521:orcl";  //连接字符串
 31     try {
 32         Class.forName("oracle.jdbc.driver.OracleDriver");  //装载驱动
 33     } catch (ClassNotFoundException e) {
 34         e.printStackTrace();
 35     }
 36     try {
 37         conn = DriverManager.getConnection(url,"scott","tiger");  //创建连接对象
 38         st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);  //设置结果集
 39         String sql = "select * from emp";  //SQL语句
 40         rs = st.executeQuery(sql);  //执行查询
 41
 42         rs.last();  //移动光标到结果集最后一行
 43         maxRowCount = rs.getRow();  //返回当前行的行号 即总共的行数
 44         maxPage = (maxRowCount + rowsPerPage - 1) / rowsPerPage;  //总页数
 45         if (curPage > maxPage)
 46             curPage = maxPage;
 47     } catch (SQLException  e) {
 48         e.printStackTrace();
 49     }
 50 %>
 51 <html>
 52 <head>
 53     <meta http-equiv="content-type" content="text/html" charset="utf-8">
 54     <title>JSP分页</title>
 55     <link rel="stylesheet" type="text/css" href="css.css">
 56 </head>
 57 <body>
 58 <div style="margin-left: 30%;margin-top: 10%">
 59     <table>
 60         <caption>SCOTT用户,EMP表中的数据</caption>
 61         <tr>  <!--表头-->
 62             <th>EMPNO</th>
 63             <th>ENAME</th>
 64             <th>JOB</th>
 65             <th>MGR</th>
 66             <th>HIREDATE</th>
 67             <th>SAL</th>
 68             <th>COMM</th>
 69             <th>DEPTNO</th>
 70         </tr>
 71         <%
 72             if (maxPage > 0)  {
 73                 try {
 74                     rs.absolute((curPage - 1) * rowsPerPage + 1);  //移动光标到当前页的第一行
 75                     int i = 0;
 76                     while (i < rowsPerPage && !rs.isAfterLast()){  //循环输出当前的数据
 77         %>
 78         <tr>
 79             <td><%= rs.getBigDecimal("EMPNO") %></td>
 80             <td><%= rs.getString("ENAME") %></td>
 81             <td><%= rs.getString("job") %></td>
 82             <td><%= rs.getBigDecimal("MGR") %></td>
 83             <td><%= rs.getDate("HIREDATE") %></td>
 84             <td><%= rs.getBigDecimal("SAL") %></td>
 85             <td><%= rs.getBigDecimal("COMM") %></td>
 86             <td><%= rs.getBigDecimal("DEPTNO")%></td>
 87         </tr>
 88         <%if (rs.next()){
 89             i++;
 90         }
 91         }
 92         %>
 93         <%
 94                     rs.close();
 95                     st.close();
 96                     conn.close();
 97
 98                 } catch (SQLException e) {
 99                     e.printStackTrace();
100                 }
101             }
102         %>
103     </table>
104 </div>
105 <div style="text-align: center; margin-top: 10%" >
106     第<%=curPage%>页,共<%=maxPage%>页&nbsp;&nbsp;&nbsp;
107     <%--第一页不能向前翻,最后一页不能向后翻。点击首页、尾页跳至第一页、最后一页--%>
108     <%if (curPage > 1)
109     {%>
110     <a href="pagemain.jsp?page=1">首页</a>
111     <a href="pagemain.jsp?page=<%=curPage - 1%>">上一页</a>
112     <%}else {%>
113     首页 上一页   <!--不能被触发-->
114     <%}%>&nbsp;
115
116     <%if (curPage < maxPage){%>
117     <a href="pagemain.jsp?page=<%=curPage + 1 %>">下一页</a>
118     <a href="pagemain.jsp?page=<%= maxPage %>">尾页</a>
119     <%}else {%>
120     下一页 尾页  <!--不能被触发-->
121     <%}%>&nbsp;&nbsp;&nbsp;转至第&nbsp;<form name="form1" action="pagemain.jsp" method="get">
122     <label>
123         <select name="page" onchange="document.form1.submit()">
124             <%
125                 for (int j = 1; j <= maxPage; j++) {
126                     if (j == curPage) {
127             %>
128             <option selected value=<%=j  //当前页页码默认选中
129             %>><%= j %></option>
130             <%} else {%>
131             <option value=<%= j
132             %>><%= j%></option>
133             <%
134                     }
135                 }
136             %>
137         </select>&nbsp;页
138     </label>
139 </form>
140 </div>
141 </body>
142 </html>
时间: 2024-11-03 22:10:11

JSP 页面实现数据分页的相关文章

关于从JSP页面插入数据到数据库中乱码问题的解决

问题描述:最近我在写一个j2ee的留言板系统模块,遇到了一个非常让我头大的问题,当我从JSP页面输入数据后,通过hibernate中的业务逻辑类HQL语句把这个数据插入到本地的mysql数据库中,可是当我发现成功插入后在数据库中看到的是乱码,再回显到浏览页面中看到的也是一堆乱码,我的jsp页面设置编码为UTF-8,如下: <%@ page language="java" contentType="text/html; charset=UTF-8"    pag

JSP页面读取数据中的数据内容,出现乱码现象的解决方法

1.首先要确保JSP页面的编码已修改为“utf-8”的字符编码: 2.然后再在jsp页面上添加代码进行设置: 先用getBytes()方法读出数据,然后再new String()方法设置格式为“utf-8”; String str = new String(val.getBytes("content"),"UTF-8");

SpringMVC返回数据给jsp页面(EL表达式取值)

第一种方式(通过request域) 通过request域返回字符串“resok”到success.jsp页面. @RequestMapping(value = "test") public String test( HttpServletRequest request) { request.setAttribute("res", "resok"); return "/pages/front/success.jsp"; } su

HTML和JSP页面的比较

一.HTML页面和JSP页面的比较 二.HTML页面和JSP页面的交互 实例一, 问题描述: HTML页面中的表单中的action="*.jsp",单击HTML页面的submit类型按钮之后,会跳转到JSP页面 *.jsp中使用HTML页面中的标签的值 编程实现: input.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/T

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

jsp页面通过ajax取值/展示数据及分页显示

jsp页面通过ajax从后台获取数据,在页面展示,并实现分页效果代码: [JavaScript部分代码] 1 <script> 2 function getComposition(pageno){ 3 4 //alert(pageno); 5 $.ajax( 6 { 7 url:'<%=basePath%>composition/compositionlist', 8 type:'post', 9 data:"pageno="+pageno, 10 succes

jsp页面数据分页模仿百度分页效果

<%@page import="web09.shop.DBUtil"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@page import="java.sql.Connection"%> <%@ page language="java

java分页的实现(后台工具类和前台jsp页面)

1.首先,新建一个类Page.java 1 public class Page implements Serializable { 2 private static final long serialVersionUID = -3198048449643774660L; 3 private int pageNow = 1; // 当前页数 4 private int pageSize = 10; // 每页显示记录的条数 5 private int totalCount; // 总记录条数 6

Spring MVC和Spring Data JPA之获取数据表数据放在List集合,显示在JSP页面

涉及到很多xml配置没写:只写具体实现的所有类 1.实体类 对应数据表SYS_SBGL, 主键是SBBM,主键是自动生成的uuid 数据表内容如下(有图有真相): package com.jinhetech.yogurt.sbgl.entity; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistenc