- package manager_servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import javax.naming.InitialContext;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import javax.sql.DataSource;
- public class list_room extends HttpServlet {
- private static final String CONTENT_TYPE = "text/html; charset=GBK";
- public void init(ServletConfig config) throws ServletException {
- super.init(config);
- }
- public void service(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
- PrintWriter out = response.getWriter();
- out.println("<html>");
- out.println("<head><title>servlet分页实现</title></head>");
- out.println("<body>");
- HttpSession session=request.getSession();
- request.setCharacterEncoding("GBK");
- String username=(String)session.getAttribute("username");
- try{
- InitialContext ic=new InitialContext();//连接数据库
- DataSource ds =(DataSource)ic.lookup("jdbc/DBConn_hotelDS");
- Connection conn = ds.getConnection();
- Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //Statement取得的ResultSet就是可滚动的
- String sql="...";
- ResultSet rs=stmt.executeQuery(sql);
- rs.last();
- int pageSize = 2;//每页显示的记录数
- int pageCount = 0;//总页数
- int rowCount = rs.getRow(); //获取记录总数.
- // pageCount = (rowCount % pageSize == 0) ? (rowCount / pageSize ) : (rowCount / pageSize +1);
- pageCount = (rowCount+pageSize-1)/pageSize;
- int currentPage = 1;//当前页
- //取得用户所指定的页
- String goToPage = request.getParameter("list_room");//list_room为当前页
- if (goToPage == null){
- goToPage = "1";
- }
- //转换成整形
- try{
- currentPage= Integer.parseInt(goToPage);
- }
- catch (NumberFormatException ex){
- currentPage = 1;
- }
- //当前页小于等于第一页 则按第一页算 如果 当前页大于等于总页数则为最后页
- if(currentPage <=1){
- currentPage = 1;
- }
- else if(currentPage >= pageCount){
- currentPage = pageCount;
- }
- //游标的位置 (当前页 - 1) * 页面大小 + 1
- int posion = (currentPage -1 ) * pageSize + 1;
- //设置游标的位置
- rs.absolute(posion);
- int i=1;
- while(i<pageSize && !rs.isAfterLast())
- {
- //...
- rs.next();
- i++;
- }
- out.print(" 第"+list_room+"页 ");
- if(currentPage< pageCount){
- out.print("<a href=trader_index.jsp?list_room="+ (currentPage+1) +">[下一页]</a> ");
- }
- if(currentPage > 1){
- out.print("<a href=trader_index.jsp?list_room="+ (currentPage-1)+">[上一页]</a> ");
- }
- out.print("<a href=trader_index.jsp?list_room=" +1+ ">『首页』</a> ");
- out.print(" <a href=trader_index.jsp?list_room="+pageCount+">『尾页』</a> ");
- out.print("共"+pageCount+"页");
- rs.close();
- stmt.close();
- conn.close();
- }catch(Exception e){e.printStackTrace();}
- out.println("</body></html>");
- out.close();
- }
- }
servlet 实现分页
最新推荐文章于 2023-06-22 11:15:03 发布