利用servlet的生命周期init()和destory()方法,对每一个Servlet实例,init()方法只被调用一次,在此方法中添加网页计数器功能。
public void init(){
try{
//只会被调用一次,可以用来作为网页计数器
FileReader fr=new FileReader("f:\\2.txt");
BufferedReader br=new BufferedReader(fr);
String numVal = br.readLine();
br.close();
this.getServletContext().setAttribute("visitTimes", numVal);
System.out.println("init方法被调用");
}catch(Exception ex){
ex.printStackTrace();
}
}
在destory()方法中,将servletContext中属性值写入文件中。
public void destroy(){
try{
//将新的次数写回去
FileWriter fw=new FileWriter("f:\\2.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write( this.getServletContext().getAttribute("visitTimes").toString());
System.out.println("destory方法被调用");
bw.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
计数器加1
String times = this.getServletContext().getAttribute("visitTimes").toString();
//对times加1
this.getServletContext().setAttribute("visitTimes", (Integer.parseInt(times)+1)+"");
打印输出
pw.println("该网页被访问了"+this.getServletContext().getAttribute("visitTimes").toString()+"次");