applyinformation.jsp 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%@page import="java.sql.*"%>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  9. <!-- Bootstrap CSS -->
  10. <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  11. <!-- Optional JavaScript -->
  12. <!-- jQuery first, then Popper.js, then Bootstrap JS -->
  13. <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  14. <script src="https://cdn.bootcss.com/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
  15. <script src="https://cdn.bootcss.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
  16. <script type="text/javascript">
  17. function del() {
  18. if(!confirm("确认要删除?")) {
  19. window.event.returnValue = false;
  20. }
  21. }
  22. </script>
  23. <title>比赛成绩管理系统</title>
  24. <style type="text/css">
  25. body {
  26. /*background-color: #eee;*/
  27. }
  28. form h1 {
  29. display: inline-block;
  30. width: 820px;
  31. }
  32. .check {
  33. padding: 30px 30px;
  34. }
  35. form {
  36. display: inline;
  37. }
  38. .contain {
  39. width: 1100px;
  40. border-radius: 10px;
  41. border: 1px #bbb solid;
  42. background-color: #f0f8ff;
  43. padding-top: 20px;
  44. }
  45. button {
  46. margin-left: 10px;
  47. }
  48. .search {
  49. display: inline-block;
  50. margin-left: 500px;
  51. }
  52. .add {
  53. float: right;
  54. margin-right: 50px;
  55. }
  56. .pageNav{
  57. margin-left: 200px;
  58. }
  59. </style>
  60. </head>
  61. <body>
  62. <%
  63. request.setCharacterEncoding("UTF-8");
  64. String pages = request.getParameter("pages");//获取当前页数
  65. int pagesNo = Integer.parseInt(pages);//把当前页数从字符串转为整型
  66. int startLine = (Integer.parseInt(pages)-1)*10;//指定数据库从哪一行开始读取
  67. %>
  68. <div class="contain pull-left">
  69. <form action="search.jsp" class="form-inline ">
  70. <h2 style="margin:15px 0px 0px 30px;">报名信息</h2>
  71. <div class="form-group search"">
  72. <input type="text" name="check" class="form-control" placeholder="请输入查询姓名或学号" />
  73. <input type="submit" name="submit" class="btn" value="搜索" />
  74. </div>
  75. </form>
  76. <div class="pull-left">
  77. <table class="table table-hover">
  78. <thead>
  79. <tr>
  80. <th>学号</th>
  81. <th>姓名</th>
  82. <th>单位</th>
  83. <th>性别</th>
  84. <th>电话</th>
  85. <th>项目</th>
  86. </tr>
  87. </thead>
  88. <tbody>
  89. <%
  90. int pageSize = 10;//指定数据库一次读取多少行
  91. String sqlQuery = "SELECT * FROM ydh.apply limit "+startLine+","+pageSize;//对数据库进行伪分页读取,一次只能读10行
  92. String sqlAll = "SELECT * FROM ydh.apply";
  93. int pagesCount = 0;//用于数据库最后读出所有行后总共有多少页
  94. int lastRow = 0;//记录数据库的最后一行
  95. try{
  96. Class.forName("com.mysql.cj.jdbc.Driver");
  97. Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ydh?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8","root","123456");
  98. Statement sql = con.createStatement();
  99. Statement stat = con.createStatement();
  100. ResultSet rs = sql.executeQuery(sqlQuery);
  101. ResultSet rsAll = stat.executeQuery(sqlAll);
  102. rsAll.last();
  103. lastRow = rsAll.getRow();//记录数据库最后一行
  104. while(rs.next()){
  105. out.print("<tr>");
  106. out.print("<td>"+rs.getString(1)+"</td>");
  107. out.print("<td>"+rs.getString(2)+"</td>");
  108. out.print("<td>"+rs.getString(3)+"</td>");
  109. out.print("<td>"+rs.getString(4)+"</td>");
  110. out.print("<td>"+rs.getString(5)+"</td>");
  111. out.print("<td>"+rs.getString(6)+"</td>");
  112. out.print("</tr>");
  113. }
  114. con.close();
  115. }catch(SQLException e){
  116. e.printStackTrace();
  117. }
  118. %>
  119. </tbody>
  120. </table>
  121. <div class="pageNav">
  122. <ul class="pagination">
  123. <%
  124. int prePage;//上一页的页数
  125. if(pagesNo == 1){
  126. prePage = 1;//若当前页是第一页,则第一页只能是当前页
  127. }else{
  128. prePage = pagesNo - 1;//除了上述情况外上一页等于当前页-1页
  129. }
  130. %>
  131. <li class="page-item"><a class="page-link" href="applyinformation.jsp?pages=<%=prePage%>">上一页</a></li>
  132. <%
  133. pagesCount = (lastRow % pageSize == 0) ? (lastRow / pageSize) : (lastRow / pageSize +1);//计算数据库能读出来的全部页数
  134. int minpages = (pagesNo - 3 >0) ? (pagesNo - 3) : 1;//设定最小页,防止页数小于第一页
  135. int maxpages = (pagesNo + 3 >= pagesCount) ? (pagesCount) : (pagesNo+3);//设定最大页
  136. for(int i = minpages;i <=maxpages ;i++){
  137. if(i == pagesNo){//当前页和遍历出来的页数相等时,需要通过调用css里面的样式“active"进行高亮
  138. out.print("<li class='page-item active'>");
  139. out.print("<a class='page-link' href='contain.jsp?pages="+i+"'>"+i+"</a>");
  140. out.print("</li>");
  141. }else{//输出每一个分页
  142. out.print("<li class='page-item'>");
  143. out.print("<a class='page-link' href='contain.jsp?pages="+i+"'>"+i+"</a>");
  144. out.print("</li>");
  145. }
  146. }
  147. //out.print("<li class='page-item'>");
  148. //out.print("<a class='page-link' href='#>...</a>");
  149. //out.print("</li>");
  150. %>
  151. <%
  152. int nextPage;
  153. if(pagesNo == pagesCount){//下一页的原理和上一页同理
  154. nextPage = pagesCount;
  155. }else{
  156. nextPage = pagesNo + 1;
  157. }
  158. %>
  159. <li class="page-item"><a class="page-link" href="applyinformation.jsp?pages=<%=nextPage%>">下一页</a></li>
  160. </ul>
  161. </div>
  162. </div>
  163. </div>
  164. </body>
  165. </html>