zoukankan      html  css  js  c++  java
  • java+jsp+servlet实现分页

    web.xml配置:

    <servlet>
        <servlet-name>abc</servlet-name>
        <servlet-class>test.pageServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>abc</servlet-name>
        <url-pattern>/insertstu</url-pattern>
      </servlet-mapping>

    ConnectionTest.Java
    package test;
    
    
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class ConnectionTest {
    
        public static  Statement returnConn() throws SQLException{
          // String name="com.mysql.jdbc.Driver";
           String url="jdbc:mysql://localhost:3306/page";
           String user="root1";
           String password="123456";
           //加载驱动
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
           //连接数据库
            Connection conn=DriverManager.getConnection(url, user, password);
            Statement st=conn.createStatement();
            return st;
    
        }
    
        public void closeIo(Connection conn,Statement st) throws SQLException{
            conn.close();
            st.close();
        }
    
    }
    
    

    PageView.java

    package test;
    
    import java.util.List;
    
    public class PageView {
         private List<Student> records;// 记录
         private Long totalrecordnumber;// 总记录数
         private Integer startindex;// 第一页
         private Integer endindex;// 最后一页
         private Integer totalpagenumber;// 总页数
         private Integer currentpage;// 当前页
         public PageView(List<Student> records, Long totalrecordnumber, int currentpage,
           int maximum, int viewperpage)
         // 构造函数
         {
          this.records = records;
          this.totalrecordnumber = totalrecordnumber;
          this.currentpage = currentpage;
          totalpagenumber = (int) (totalrecordnumber % maximum == 0 ? totalrecordnumber
            / maximum
            : totalrecordnumber / maximum + 1);//获得总页数
          setIndex(currentpage, viewperpage, totalpagenumber);
         }
         public List<Student> getRecords() {
          return records;
         }
         public Long getTotalrecordnumber() {
          return totalrecordnumber;
         }
         public Integer getStartindex() {
          return startindex;
         }
         public Integer getEndindex() {
          return endindex;
         }
         public Integer getTotalpagenumber() {
          return totalpagenumber;
         }
         public Integer getCurrentpage() {
          return currentpage;
         }
        //获得总页数 显示页数 当前页数 第一页 最后一页
         public void setIndex(int currentpage, int viewperpage, int totalpagenumber) {
          if (viewperpage >= totalpagenumber) {
           startindex = 1;
           endindex = totalpagenumber;
          } else {
           if (currentpage <= viewperpage / 2) {
            startindex = 1;
            endindex = viewperpage;
           } else if ((currentpage + viewperpage / 2) > totalpagenumber) {
            startindex = totalpagenumber - viewperpage + 1;
            endindex = totalpagenumber;
           } else {
            startindex = currentpage - (viewperpage - 1) / 2;
            endindex = currentpage + viewperpage / 2;
           }
          }
         }
    }
    

    Student.java

    package test;
    
    import java.util.Date;
    
    public class Student {
       private int id;
       private String name;
       private int age;
       private String sex;
       private Date birth;
    public Student() {
        super();
    }
    public Student(int id, String name, int age, String sex, Date birth) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.birth = birth;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    
    
    }
    

    pageServlet.java

    package test;
    
    
    import java.io.IOException;  
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    import javax.servlet.ServletException;  
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
    
    public class pageServlet extends HttpServlet {  
        public static  Statement returnConn() throws SQLException{
              // String name="com.mysql.jdbc.Driver";
               String url="jdbc:mysql://localhost:3306/page";
               String user="root1";
               String password="123456";
               //加载驱动
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
               //连接数据库
                Connection conn=DriverManager.getConnection(url, user, password);
                Statement st=conn.createStatement();
                return st;
    
            }
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)  
                throws ServletException, IOException {  
            //showone(request,response);
            try {
                showtwo(request,response);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }  
    
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)  
                throws ServletException, IOException {  
           doGet(request, response);  
        }  
    
        public void showone(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
             try {
                Statement st=returnConn();
                String sql="select * from student";
                ResultSet rs=st.executeQuery(sql);
                List<Student>  list=new ArrayList<Student>();
                while(rs.next()){
                    int id=rs.getInt("id");
                    String name=rs.getString("name");
                    int age=rs.getInt("age");
                    String sex=rs.getString("sex");
                    Date birth=rs.getDate("birth");
                    Student stu=new Student(id,name,age,sex,birth);
                    list.add(stu);
                }
    
                //response.sendRedirect("studentlist.jsp");
                request.setAttribute("list", list);
                request.getRequestDispatcher("studentlist.jsp").forward(request, response);
    
    
    
    
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
    
        }
    
    
        public void showtwo(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException{
    
             // 当前是第几页
              String currentpageStr = request.getParameter("currentpage") == null ? "1"
                : request.getParameter("currentpage");
              int currentpage = Integer.parseInt(currentpageStr);
              // 每页显示多少条
              int maximum = 5;
              // 可以显示多少页
              int viewperpage = 5;
    
              Statement st=returnConn();
              String sql="select * from student limit "+ (currentpage - 1) * maximum + "," + maximum;
              ResultSet rs=st.executeQuery(sql);
                List<Student>  list=new ArrayList<Student>();
                while(rs.next()){
                    int id=rs.getInt("id");
                    String name=rs.getString("name");
                    int age=rs.getInt("age");
                    String sex=rs.getString("sex");
                    Date birth=rs.getDate("birth");
                    Student stu=new Student(id,name,age,sex,birth);
                    list.add(stu);
                }
                 String sql2="select * from student";
                  ResultSet rs2=st.executeQuery(sql2);
                    int count=0;
                  while(rs2.next()){
                       count++;
                    }
    
                long totalrecordnumber=count;
                 // 将数据都封装到pageView
                PageView pageView =new PageView(list, totalrecordnumber, currentpage, maximum, viewperpage);
                 // PageView<Student> pageView = new PageView<Student>(records,totalrecordnumber, currentpage, maximum, viewperpage);
                  request.setAttribute("pageView", pageView);
                  request.setAttribute("list", list);
                  request.getRequestDispatcher("studentlist.jsp").forward(request, response);
    
    
    
    
    
    
    
    
    
        }
    }  
    

    jsp页面代码:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ page import="test.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <script type="text/javascript">
    
     function topage(currentpage) {
      var form = document.forms[0];
      form.currentpage.value = currentpage;
      form.submit();
     }
    </script>
    
      </head>
    
      <body>
      <form>
       <input type="hidden" name="currentpage" />
        <table align="center" style=" 60%;" border="1">
           <tr>
             <th>学生编号</th>
             <th>学生姓名</th>
             <th>学生年龄</th>
             <th>学生性别</th>
             <th>学生生日</th>
           </tr>
          <c:forEach items="${requestScope.list}" var="list">
           <tr>
                <td>${list.id }</td>
                 <td>${list.name }</td>
                  <td>${list.age }</td>
                   <td>${list.sex }</td>
                    <td>${list.birth}</td>        
    
    
           </tr>
          </c:forEach>
    
       </table>
       <div align="right" style=" 80%">
      <c:forEach begin="${pageView.startindex}" end="${pageView.endindex}"
       var="wp">
       <c:if test="${pageView.currentpage==wp}">
        <b>[${wp}]</b>
       </c:if>
       <c:if test="${pageView.currentpage!=wp}">
        <a href="javascript:topage('${wp}')">[${wp}]</a>
       </c:if>
      </c:forEach>
                                总共${pageView.totalrecordnumber}页
        </div>
      </form>
    
      </body>
    </html>
  • 相关阅读:
    git操作详解
    藏医诊疗管理系统
    广告的转化率预估
    python字符串及其内置函数详解
    python数据类型和运算符及运算符的优先级
    lunix常用命令
    返回结果的HTTP状态码
    简单的http协议
    git 上传项目到分支
    安装及使用webpack
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/6243979.html
Copyright © 2011-2022 走看看