算法
需要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();