jsp:使用jsp完成数据的分页显示

一,使用jsp将数据库内的数据。分页显示到页面

1,创建一个servelt处理后台数据,和数据库的数据

private static final long serUid=1L;
    //加载驱动
    static final String jdbc="com.mysql.jdbc.Driver";
    //要连接的数据库url
    static final String db_url="jdbc:mysql://localhost:3306/test";
    //数据库用户名
    static final String user="db";
    //数据库密码
    static final String pass="1743721";
    int currentPage=1;
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Connection conn=null;
        Statement stmt=null;
        //显示的数据的格式
        response.setContentType("text/html;charset=UTF-8");

        PrintWriter out =response.getWriter();
        try {
            Class.forName(jdbc);
            conn=DriverManager.getConnection(db_url,user,pass);
            stmt=conn.createStatement();
            String sql=null;
            sql="select * from t_message where 1=1 order by s_date desc";
            int pageSize=5;
            int d=3;
            String re=null;        //接收url中的参数
            re=request.getQueryString();
            //System.out.print(re);
            if(re!=null){
                String[] ee=re.split("=");
                if("cupg".equals(ee[0])){
                    re=ee[1];
                    int r=Integer.valueOf(re).intValue();
                    d=r;
                    currentPage=r;
                }else{
                    re=ee[1];
                    int bt=Integer.valueOf(re).intValue();
                    currentPage=bt;
                    if(bt<=3){
                        d=3;
                    }else{
                        d=bt;
                    }
                }
            }
            if(currentPage<=0){
                d=3;
                currentPage=1;
            }

            int start=(currentPage-1)*pageSize;        //获取数据进行分页处理
            String limitsql="select * from("+sql+")pp limit "+start+","+pageSize;
            ResultSet rs=stmt.executeQuery(limitsql);
            List<User> userlist=new ArrayList<User>();
            User user=null;

            while(rs.next()){        //创建一个对象存入数据
            user=new User();
            user.setMessage_id(rs.getInt("message_id"));
            user.setTitle(rs.getString("title"));
            user.setName(rs.getString("name"));
            user.setS_date(rs.getString("s_date"));
            user.setS_des(rs.getString("s_des"));
            user.setL_des(rs.getString("l_des"));
            userlist.add(user);
            }
            request.setAttribute("nubtn",d);
            request.setAttribute("cupg", currentPage);
            request.setAttribute("args", userlist);
            request.getRequestDispatcher("/qh/message.jsp").forward(request, response);

            //关闭通道
            rs.close();
            conn.close();
            stmt.close();

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

2,在页面接收并处理得到的数据

    <div class="column">
        <h1 class="column-tit"><span><a href="#" title="首页">首页</a> > <a href="#" title="留言回复">留言回复</a></span>留言回复</h1>
        <div class="mailbox mt20">

                   <% ArrayList userlist=(ArrayList)request.getAttribute("args");              //遍历的到的数据
                       for(int i=0;i<userlist.size();i++){
                               User user=(User)userlist.get(i);
                    %>
                        <div class="online-content clearfix">
                            <div class="icon fl">
                                <img src="../images/online.png" alt="">
                            </div>
                            <div class="question fr">
                                <p>留言主题:<%=user.getTitle()%> </p>
                                <p class="name"><span>网友:<%=user.getName()%></span><span><%=user.getS_date()%></span><span><a target="_blank" href="#">我要留言</a></span></p>
                                <div class="message-i ">
                                    <p><strong>留言详情:</strong><%=user.getS_des()%></p>
                                </div>
                                <div class="answer">
                                    <p><strong>执法监察总队回复:</strong><%=user.getL_des()%></p>
                                </div>
                            </div>
                        </div>
                    <%
                        }
                    %>

              <div class="page">                      //分页按钮的处理
                   <%int currentPage=(Integer)request.getAttribute("cupg");
                           int cugg=3;
                           Integer d=0;
                            int nubtn=(Integer)request.getAttribute("nubtn");
                           if(nubtn>=3)cugg=nubtn;
                         String a=request.getQueryString();
                         if(a!=null){
                            String[] ee=a.split("=");
                            a=ee[1];

                        d=Integer.parseInt(a);
                        }

                       %>

            <div style="display: none;" id="yc"><%=a%></div>
            <ul id="mu"><li class="num"><a href="/MysqlTest/servlet/GetMysql?cupg=1">首页</a></li>
                    <li class="num"><a href="/MysqlTest/servlet/GetMysql?cupg=<%=currentPage-1%>">上一页</a></li>
                    <li class="num page-active"><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg-2%>"><%=cugg-2%></a></li>
                    <li class="num" style=""><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg-1%>"><%=cugg-1 %></a></li>
                    <li class="num"><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg %>"><%=cugg %></a></li>
                    <li class="num" ><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg+1%>"><%=cugg+1%></a></li>
                    <li class="num"><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg+2%>"><%=cugg+2%></a></li>
                    <li class="page-speciall">...</li><li class="num">34</li>
                    <li class="num"><a href="/MysqlTest/servlet/GetMysql?cupg=<%=currentPage+1%>" >下一页</a></li>
                    <li class="num"><a href=>尾页</a></li></ul>
              </div>
        </div>
    </div>

原文地址:https://www.cnblogs.com/dybe/p/8227638.html

时间: 2024-08-27 13:53:06

jsp:使用jsp完成数据的分页显示的相关文章

oracle中数据的分页显示及优化

在一个页面中经常会出现分页的现象,那么后台数据库又应该如何分页显示呢? 分页可以使用oracle中的rownum函数. 一个页面中从第几行到第几行数据的显示. 下面以scott用户下的emp表说明: 语句一: select b.* from( select a.* ,rownum row_num from (select * from emp ) a) bwhere row_num between 3 and 5; 语句二: select b.* from( select a.* ,rownum

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

html、java、mysql数据交互之数据分页显示

在上文中我们已经从数据库中获取到了数据,并且可以显示在html页面上.本文是继上文之后,将获取到的数据集进行处理之后显示在页面上. 从所接触的知识面,这里想到了有两种方案. 一.使用容器将获得的数据保存起来,然后显示到页面上. 二.重写ResultSet类方法,实现ResultSet的分页,并使用jsp显示到页面上. 两种方式都可行,考虑到大数据的效率问题,这里选择了方法二. 一.重写ResultSet类,实现记录集的分页 1.添加Pageable接口 package com.cn.page;

PHP从零单排(十四)数据分页显示的原理及实现

分页显示是WEB编程中最频繁处理的环节之一.所谓分页显示,就是通过程序将结果集一段一段的来显示.实现分页显示,需要两个初始参数:每页显示多少记录和当前是第几页.再加上完整的结果集,就可以实现数据的分页显示.至于其他功能,比如上一页.下一页等均可以根据以上信息加以处理得到. 要取得某表中的前10条记录,可以使用如下SQL语句: SELECT * FROM a_table LIMIT 0,10 要查找第11到第20条记录,使用的SQL语句如下所示: SELECT * FROM a_table LIM

新闻发布系统(分页显示)

根据上次的新闻发布展示页面效果,进行分页操作: 分页实现: 实现数据的分页显示,需要以下几个关键步骤: ①确定每页显示的总页数 ②计算显示的总页数 ③编写SQL语句 一.页面效果图 1.创建util包,Page类,定义相关属性并进行封装: package cn.news.util; import java.util.List; import cn.news.entity.NewsDetail; public class Page { //当前页 private int pageIndex; //

JSP分页显示实例(基于Bootstrap)

首先介绍一款简单利落的分页利器:bootstrap-paginator 效果截图: GitHub官方下载地址:https://github.com/lyonlai/bootstrap-paginator 备用下载地址:http://files.cnblogs.com/files/Dreamer-1/bootstrap-paginator-master.rar 下面就来详细介绍一下基于这款分页利器的JSP分页显示实现过程(注:相较于原网页我隐去了很多不必要的内容,本例只专注于分页显示的实现) 一:

从数据库提取数据通过jstl显示在jsp页面上

从数据库提取数据通过jstl显示在jsp页面上 1.ConnectDB.java连接数据库,把数据转换成list public class ConnectDB { private final static String strDriver = "oracle.jdbc.driver.OracleDriver"; private final static String strConnect = "jdbc:oracle:thin:@localhost:1521:ORCL&quo

简单的JSP分页显示

1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张表的名称: startPoint 就是起始的位置 -1: numberPerPage 就是一页显示的条数. 例如: select * from comment limit 20,5; 则是从comment表中抽取21~25号评论: 2.jQuery load函数 (页面JS) MySQL的limit

jsp+servlet实现模糊查询和分页效果

---恢复内容开始--- 1.DAO+MVC包 2.DAO接口方法定义 package com.wanczy.dao; import java.math.BigDecimal;import java.util.List; import com.wanczy.pojo.CustomerResourcePOJO; public interface CustomerResourceDAO { /**  *   * @param sName学校名称  * @param cLevel合作等级  * @pa