五、分页 (第四讲)

 

算法

需要4个变量

int pageSize;每页显示多少条记录(是指定的)
int pageNew;希望显示第几页(是用户选择的)
int pageCount;一共有多少页	(是从表中查询得到的) 
int rowCount;一共有多少条记录(是计算出来的 该计算式为)
if(rowCount%pageSize==0){
	pageCount=rowCountp/pageSize;
}else{
	pageCount=rowCount/pageSize+1;
}



 

Mysql中

分页使用 limit接受一个或两个数字参数

Limit有2个参数

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

初 始记录行的偏移量是 0(而不是 1)

limit 5,从第1条到5条

limit 5, 10,从第6开始显示10条

select  * from users limit 0,3;

"select * from users limit "+(pageNow-1)*pageSize+","+pageSize

 

分页SQL,SERVLET语句

Select top pageSize 字段名 from 表明 where id not in (select top pageSize*(pageNow-1) id from 表名)

例如现实第三页,每页3条

Select top 3 * from users where userid not in (select top 6 userid from user);

 

翻页连接:

if(pageNow!=1){

         p.print("<a href=Welcome?pageNow="+(pageNow-1)+">  上一页 </a>");

}        

                                     

for(int i=1;i<=pageNow+4&&i<=pageCount;i++){

p.print("<a href=Welcome?pageNow="+i+">  "+i+"</a>");

}

                                

if(pageNow!=pageCount&&pageNow<=pageCount){

         p.print("<a href=Welcome?pageNow="+(pageNow+1)+">  下一页 </a>");

         }


 

 

ServletContext

import javax.servlet.*;

ServletContext sc=this.getServletContext(); //在doGET(),或doPost()中直接this

//添加

sc.setAttribut(“name”,value);

//获取

String name=(String)sc.getAttribut(“name”);

//删除

sc.removeAttribute("name");


 

 

 

servlet文件操作

//读取文件

FileReader f=new FileReader(“f:\\test.txt”);

BufferedReader br=new BufferedReader(f);

//读出一行

String numval=bw.readLine();

//一定要关闭文件流

br.clost

 

//写入数据    内存数据à磁盘文件(写入,输出)

//内存数据ß磁盘文件(读入,输入)

FileReader f=new FileReader(“f:\\test.txt”);

Bufferedwriter bw=new Bufferedwriter(f);

bw.write(“123”);

bw.close();


 

 

 

客户端用户IP地址,主机名

Ip: req.getRemoteAddr();

主机名:req.getRemoteHost();

你可能感兴趣的:(五、分页 (第四讲))