1.我有30条记录,我想每页面只显示10条。
2.这些记录我想由下面语句得出:select * from user limit 0,10。
3.我要显示,相应的页面码出来。比如:1,2,3,4,5,6,7,8,9,
点击相应页码,访问到相应的页面。(注意,我要它们自动生成的。)
4.当用户选取比如超过5(或比较大的数时,),我要如下的结果:
5,6,7,8,9,10,11,12,13,14.
请大侠们帮我解答一下啊。最好有具体代码和注解。

解决方案 »

  1.   

    我的结果,保存在resultset当中。
      

  2.   

    servlet中代码也可以用JSP写
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            response.setContentType(CONTENT_TYPE);
            Usetableclass ut = new Usetableclass();
            int pagecount =0;   //一起有多少页
            int rowcount =0;    //一起有多少条记录
            int pagesize =5;    //一页显示多少条记录
            int pagenow = 1;     //要显示的是第几页
            String pgn = request.getParameter("id");
            if(pgn!=null){
                pagenow = Integer.parseInt(pgn);
            }
            rowcount = ut.selectcount();
            if(rowcount%pagesize==0){
                pagecount = rowcount/pagesize;
            }else{
                pagecount = rowcount/pagesize+1;
            }
            List list = ut.selectAll(pagesize,pagenow);
            String spagecount = pagecount+"";
            String spagenow  = pagenow+"";
            request.setAttribute("list",list);
            request.setAttribute("spagecount",spagecount);
            request.setAttribute("spagenow",spagenow);
            request.getRequestDispatcher("jsp1.jsp").forward(request,response);    }
    \\\\\\\\\\\\\\\\\\\\\Jsp中代码
    <table>
    <tr>
    <th>userid</th><th>username</th><th>password</th><th>email</th>
    </tr>
    <c:forEach items="${requestScope.list}" var="li">
    <tr>
    <td>${li.userid}</td>
    <td>${li.username}</td>
    <td>${li.password}</td>
    <td>${li.email}</td>
    </tr>
    </c:forEach>
    <tr>
    <td colspan="4">
    <%
       String pagecount = (String)request.getAttribute("spagecount");
       String pagenow = (String)request.getAttribute("spagenow");
       int ab = Integer.parseInt(pagecount);
       int pgn = Integer.parseInt(pagenow);
       if(pgn!=1){
    %>
       <a href="servlet1?id=<%=pgn-1%>">上一页</a>
    <%
                 }
       for (int i = pgn; i <= pgn+4; i++) {
    %>
             <a href="servlet1?id=<%=i+5%>"><%=i%></a>
    <%
       }
       if(pgn!=ab){
    %>
       <a href="servlet1?id=<%=pgn+5%>">下一页</a>
    <%}
    %>
    </td>
    </tr>
    </table>
      

  3.   

    String pgn = request.getParameter("id"); 
    id在哪里定义啦?
      

  4.   

    id不是定义,id是个参数,传递到servlet里面处理 String pgn = request.getParameter("id"); 
      

  5.   

    两种分页查询,lz只需要把参数改下就ok了select top 10 * from books 
      where id not in (select top 20 id from books) order by id)
    order by id
    select * from
    (select row_number() over(order by id) as row, * from books) as Rank
     where row between 21 and 30 order by id
      

  6.   

            function fnGoPage(aPageNo){
                searchForm.pageNo.value=aPageNo;
                searchForm.submit();
            }
    <input type="hidden" name="pageNo" value="1"/>
    RecordSet company = (RecordSet)request.getAttribute("company");
    <div id="pager">
    <%
        StringBuilder sb=new StringBuilder();
        int totalPages=company.getTotalRecordCount()>0?(company.getTotalRecordCount() - 1) / company.getRecordCountPerPage() +1:0;
        for (int i=1;i<=totalPages;i++){
            sb.append("<a href='javascript:fnGoPage(").append(i).append(")'>");
            if (i==company.getPageNo())
                sb.append("<b>").append(i).append("</b>");
            else
                sb.append(i);
            sb.append("</a>&nbsp;");
        }
        out.println(sb.toString());
        out.println("<div>total records:"+company.getTotalRecordCount()+"/"+totalPages+"pages </div>");
    %>
    </div>
      

  7.   

    建议开源的.
    我这里推荐一下extremetable
    很好用.只要在rquest.setAttribute();传一个list 其它的事它就帮你做了.
      

  8.   

    使用hibernate的一个criteria类可以
    public List queryAll(int first,int max){
     Configuration config= new Configuration().configure();
    SessionFactory factory = config.buildSessionFactory();
    Session session = factory.openSession();
    Criteria criteria = session.createCriteria(TBook.class);
    criteria.setFirstResult(first);
    criteria.setMaxResults(max);
    //Transaction tran = session.beginTransaction();
    //  List list = nullString hql = "FROM TBook";
    //Query q = session.createQuery(hql);
    //list = q.list();
    //tran.commit();
       return criteria.list();
    }
    public int getCount(){
     Configuration config= new Configuration().configure();
    SessionFactory factory = config.buildSessionFactory();
    Session session = factory.openSession();
    Criteria criteria = session.createCriteria(TBook.class);
       return criteria.list().size();
    }
    public List queryName(String a,String b){
     Configuration config= new Configuration().configure();
    SessionFactory factory = config.buildSessionFactory();
    Session session = factory.openSession();
    Criteria criteria = session.createCriteria(TBook.class);
    try{
    criteria.add(Expression.like(a,"%"+b+"%"));}
    catch(Exception e){System.out.println("queryName异常"+e.toString());}
    //System.out.println("鎵ц缁撴灉锛?+criteria.list());
    return criteria.list(); }
      

  9.   

    JSP中呀
    <a href="servlet1?id= <%=i+5%>"> <%=i%>
      

  10.   

    lipeng420666201兄弟,有一个小问题啊,
    1.当由1,点击去到2页码时,竟然没有“下一页”按钮。
    2.我没有提供一个list.
    3.你上面的语句,我改成了<a href="servlet1?id=<%=i%>"> <%=i%> </a> 
    (这样,我点击相应的页码时,都能正确显示相应用户的介绍,只是“下一页”问题在影响。)