2016-java基础篇-分页算法

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);
	}
    
    
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值