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="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>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM