java+jsp+servlet实现分页

来源:互联网 发布:外设与cpu数据交换方式 编辑:程序博客网 时间:2024/06/16 21:16

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="width: 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="width: 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>
0 0
原创粉丝点击