servlet分页算法:
package com.tsinghuas;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Welcome extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
Connection con=null;
PreparedStatement pre=null;
ResultSet result =null;
try{
//String u = req.getParameter("uname");
//String p = req.getParameter("uPasswd");
//
res.setContentType("text/html;charset=gbk");
PrintWriter pw = res.getWriter();
//pw.println("hello,http");
//pw.println("欢迎");
//pw.println(u+p);
HttpSession hs1=req.getSession(true);
String val = (String)hs1.getAttribute("pass");
String email1 = (String)hs1.getAttribute("email1");
//分页
int pageSize=2;
int pageNow=1;
int rowCount=0;
int pageCount=0;
//动态接收pageNow
String sPageNow=req.getParameter("pageNow");
if(sPageNow==null){
}else{
pageNow=Integer.parseInt(sPageNow);
}
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="Test01";
String password="Test01";
con=DriverManager.getConnection(url,user,password);
String sql="select count(*) from users";
pre =con.prepareStatement(sql);
result=pre.executeQuery();
if(result.next()){
rowCount=result.getInt(1);
}
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
sql="select * from ( select rownum rn,t.* from users t) a where a.rn>? and a.rn<=?";
pre=con.prepareStatement(sql);
System.out.println("pageSize*(pageNow-1): "+pageSize*(pageNow-1));
System.out.println("pageSize*pageNow: "+pageSize*pageNow);
pre.setInt(1,pageSize*(pageNow-1));
pre.setInt(2,pageSize*pageNow);
result=pre.executeQuery();
pw.println("<body><center>");
pw.println("<br><img src=imgs/1.GIF><br>");
pw.println("<table border=1>");
pw.println("<tr><th>userid</th><th>username</th><th>passwd</th><th>email</th><th>grade</th></tr>");
while(result.next()){
pw.println("<tr>");
pw.println("<td>"+result.getString(2)+"</td>");
pw.println("<td>"+result.getString(3)+"</td>");
pw.println("<td>"+result.getString(4)+"</td>");
pw.println("<td>"+result.getString(5)+"</td>");
pw.println("<td>"+result.getString(6)+"</td>");
pw.println("</tr>");
}
pw.println("</table>");
pw.println("</body>");
if(pageNow!=1){
int s1PageNow=pageNow-1;
pw.println("<a href=welcome?pageNow="+s1PageNow+">上一页</a>");
}
for(int i=1;i<=pageCount;i++){
pw.println("<a href=welcome?pageNow="+i+">"+i+"</a>");
}
if(pageNow<pageCount){
int x1PageNow=pageNow+1;
pw.println("<a href=welcome?pageNow="+x1PageNow+">下一页</a>");
}
pw.println(email1);
if(val!="ok"){
res.sendRedirect("login");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
result.close();
pre.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}