资源简介
仅仅用一个servlet中的过滤器,即可实现网站的统计人数,可以防止刷新。每次登陆的时候加1.可以保存在本地磁盘。很实用,简单有注释。
代码片段和文件信息
package com.accp.houserent.filter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
//过滤器类
public class EcondingFilter implements Filter {
private String charset = null;
private ServletContext context = null;
private String path = ““;
/**
* 在销毁前将数据存入本地文件中
*/
public void destroy() {
//获取servleContext中的属性的那个值
String nums = (String) context.getAttribute(“nums“);
//创建写入流
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(path);
bw = new BufferedWriter(fw);
bw.write(nums);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (bw != null) {
bw.close();
}
if (fw != null) {
fw.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(“filter销毁“);
}
public void doFilter(ServletRequest request ServletResponse response
FilterChain chain) throws IOException ServletException {
// TODO Auto-generated method stub
System.out.println(“doFilter前“);
String path = ((HttpServletRequest)request).getServletPath();//获取每次访问的action的相对路径
//判断路径,如果是登陆的,就让保存的context里面的那个属性加1
if(path.endsWith(“/login.action“)){
context.setAttribute(“nums“Integer.parseInt(context.getAttribute(“nums“).toString())+1+““);
}
- 上一篇:java实现坦克大战联机
- 下一篇:公交管理系统java+MySQL源码及设计报告
评论
共有 条评论