我不管我不管,虽然不好看,超级不优雅,可以称作是大杂烩。但是好歹也是自己磕磕巴巴做出来的第一个分页界面,以后再慢慢优化,吸收。
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'welcome.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h1>完成菜单列表情况</h1> <% //定义分页变量 int pageSize=20;//每页显示20条数据 int pageNow=1;//默认显示第一页 int rowCount=0;//该值从数据库查询,表示一共有多少条记录 int pageCount=0;//该值是通过pageSize和rowCount,一共有多少页 //接收用户希望显示的页数(pageNow); String s_pageNow=request.getParameter("pageNow"); if(s_pageNow!=null){ //接收到pageNow pageNow=Integer.parseInt(s_pageNow);//将字符串变为整数 } //查询得到rowCount; //1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); //2.得到链接 Connection ct=DriverManager.getConnection("jdbc:mysql://182.254.213.191:3306/pvdb","PvUser","PvUser911"); //3.创建Statement Statement sm=ct.createStatement(); //4.查询 ResultSet rs=sm.executeQuery("select count(*) from 权限表"); if(rs.next()){ rowCount=rs.getInt(1); } //计算pageCount if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } //查询出需要显示的记录 //rs=sm.executeQuery("select id,权限名称,备用字段2 as 负责人 from 权限表 where id limit "+ ((pageNow-1)*pageSize)+","+pageSize); rs=sm.executeQuery("SELECT id,权限名称,负责人 from (select id,权限名称,备用字段2 as 负责人 from 权限表 order by id ) a where id limit "+ ((pageNow-1)*pageSize)+","+pageSize); //显示 %> <table border="1"> <tr><td>ID</td><td>权限名称</td><td>负责人</td></tr> <% while(rs.next()){ %> <tr><td><%=rs.getString(1)%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td></tr> <% } %> </table> <% //上一页 if(pageNow!=1){ out.println("<a href=welcome.jsp?pageNow="+(pageNow-1)+">上一页</a>"); } //显示超链接 for(int i=1;i<=pageCount;i++){ out.println("<a href=welcome.jsp?pageNow="+i+">["+i+"]</a>"); } //下一页 if(pageNow!=pageCount){ out.println("<a href=welcome.jsp?pageNow="+(pageNow+1)+">下一页</a>"); } %> </body> </html>
就一个.jsp文件实现分页。其实还存在很多问题,可以把连接数据库的方法单独封装成一个类,这样在一个项目中大家只用改sql语句就可以共享连接数据库的方法。结果显示如下图所示。