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

Posted dYb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 







以上是关于jsp:使用jsp完成数据的分页显示的主要内容,如果未能解决你的问题,请参考以下文章

求教jsp分页显示的问题,如何循环并分页取得参数?

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

在jsp中使用jtable为所有表添加分页

php中的分页显示

关于Java的分页算法,急!

在JSP中如何实现分页技术啊?