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