//----------------------------------------------------------
//  ShowData.java - myservlet
//----------------------------------------------------------
package myservlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import myjava.util.Uty;

/**
 * Servlet implementation class DrawPageNavi
 */
public class ShowPageNavi extends HttpServlet {
  private static final long serialVersionUID = 1L;

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String rstr = "";
    int pgCount  = Uty.s2i(Common.getParam(request,"pgCount" ));

    if (pgCount > 1) {
      String onclick = Common.getParam(request, "onClick");
      int pgNumber = Uty.s2i(Common.getParam(request,"pgNumber"));

      // draw Preview
      String href = (pgNumber > 1) ? " onclick='" + onclick + "(" +(pgNumber-1)+ ")'" : "";
      rstr += "<li class='lastpage' "+ href +">上一页</li>";

      int page_ge = pgNumber > 7 ? pgNumber - 4 : 1;
      int page_le = page_ge + 8;

      if (pgCount - page_le < 3) {
        page_le = pgCount;
        page_ge = page_le > 11 ? page_le - 8 : 1;
      }

      if (page_ge > 1) {
        rstr += "<li><a onclick='"+ onclick +"(1)'>1</a></li>";
        rstr += "<li><a>...</a></li>";
      }

      for (int i = page_ge; i <= page_le; i++) {
        if (i==pgNumber) {
          rstr += "<li><a class='active'>"+ pgNumber +"</a></li>";
        } else {
          rstr += "<li><a onclick='" + onclick + "(" + i +")'>" + i +"</a></li>";
        }
      }

      if (page_le < pgCount) {
        rstr += "<li><a>...</a></li>";
        rstr += "<li><a onclick='"+ onclick +"("+ pgCount +")'>"+ pgCount +"</a></li>";
      }

      // draw Next
      href = (pgNumber < pgCount) ? " onclick='" + onclick + "(" + (pgNumber + 1) +")'" : "";
      rstr += "<li class='lastpage' "+ href +">下一页</li>";
    }

    response.setCharacterEncoding("utf-8");
    response.getWriter().append(rstr);
  }
}

效果