`
xcxinghai
  • 浏览: 31825 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

分页技术

 
阅读更多
Code:
  1. packagecom.tsinghua;
  2. importjavax.servlet.http.*;
  3. importjava.io.*;
  4. importjava.sql.*;
  5. publicclassWelextendsHttpServlet{
  6. //处理get请求
  7. //req:用于获得客户端(浏览器)的信息
  8. //res:用于向客户端(浏览器)返回信息
  9. publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){
  10. Connectionct=null;
  11. PreparedStatementps=null;
  12. ResultSetrs=null;
  13. //中文乱码
  14. res.setContentType("text/html;charset=gbk");
  15. PrintWriterpw=null;
  16. try{
  17. pw=res.getWriter();
  18. pw.println("<body><center>");
  19. //得到session
  20. HttpSessionhs=req.getSession(true);
  21. StringmyName=(String)hs.getAttribute("pass");
  22. //判断
  23. if(myName==null){
  24. //非法登录,返回登录界面
  25. res.sendRedirect("login");
  26. return;
  27. }

  28. //===========分页的功能================
  29. intpageSize=3;//一页显示几条记录
  30. intpageNow=1;//希望显示第几页
  31. introwCount=0;//共有几条记录
  32. intpageCount=0;//共有几页(计算出来的)
  33. //动态的接受pageNow
  34. StringsPageNow=req.getParameter("pageNow");
  35. if(sPageNow!=null){
  36. pageNow=Integer.parseInt(sPageNow);
  37. }
  38. //得到rowCount
  39. //连接数据库
  40. Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  41. //得到链接(数据库的url)
  42. ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb","sa","sa");
  43. //创建一个Statement
  44. ps=ct.prepareStatement("selectcount(*)fromusers");
  45. rs=ps.executeQuery();
  46. if(rs.next()){
  47. rowCount=rs.getInt(1);
  48. }
  49. //计算pageCount
  50. if(rowCount%pageSize==0){
  51. pageCount=rowCount/pageSize;
  52. }else{
  53. pageCount=rowCount/pageSize+1;
  54. }
  55. ps=ct.prepareStatement("selecttop"+pageSize+"*fromuserswhereuserIdnotin(selecttop"+pageSize*(pageNow-1)+"userIdfromusers)");
  56. rs=ps.executeQuery();
  57. //显示结果集
  58. pw.println("<tableborder=1>");
  59. pw.println("<tr><th>id</th><th>username</th><th>password</th><th>email</th><th>grade</th></tr>");
  60. while(rs.next()){
  61. pw.println("<tr>");
  62. pw.println("<td>"+rs.getInt(1)+"</td>");
  63. pw.println("<td>"+rs.getString(2)+"</td>");
  64. pw.println("<td>"+rs.getString(3)+"</td>");
  65. pw.println("<td>"+rs.getString(4)+"</td>");
  66. pw.println("<td>"+rs.getInt(5)+"</td>");
  67. pw.println("</tr>");
  68. }
  69. pw.println("</table>");
  70. //显示超链接
  71. if(pageNow>1){
  72. pw.println("<ahref=wel?pageNow="+1+">首页</a>");
  73. pw.println("<ahref=wel?pageNow="+(pageNow-1)+">上一页</a>");
  74. }
  75. for(inti=pageNow;i<=pageNow+4;i++){
  76. pw.println("<ahref=wel?pageNow="+i+">"+i+"</a>");
  77. if(i>pageCount)
  78. break;
  79. }
  80. if(pageNow<pageCount){
  81. pw.println("<ahref=wel?pageNow="+(pageNow+1)+">下一页</a>");
  82. pw.println("<ahref=wel?pageNow="+pageCount+">末页</a>");
  83. }
  84. pw.println("</center></body>");
  85. }catch(Exceptione){
  86. e.printStackTrace();
  87. }
  88. }
  89. //处理Post请求
  90. publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){
  91. this.doGet(req,res);
  92. }
  93. }

最近在学习用Servlet做网页,这是刚刚学会的分页算法,与大家共享。


ps:我的新博客地址:http://www.xinghaixu.com

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics