首页>代码>Java web实现统计网站的IP访问次数几种例子>/pageview/src/com/chen/filter/MyFilter.java
package com.chen.filter;

import java.io.IOException;
import java.util.Map;

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 MyFilter implements Filter {

	private FilterConfig filterConfig;

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		ServletContext context = filterConfig.getServletContext();
		Map<String, Integer> ipMap = (Map<String, Integer>) context
				.getAttribute("ipMap");
		String ip = request.getRemoteAddr();
//		String ip = getIpAddr(request);
		if (ipMap.containsKey(ip)) {
			Integer count = ipMap.get(ip);
			ipMap.put(ip, count + 1);
		} else {
			ipMap.put(ip, 1);
		}
		context.setAttribute("ipMap", ipMap);
		chain.doFilter(request, response);
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}

	public String getIpAddr(HttpServletRequest request)  {
        String ip  =  request.getHeader( " x-forwarded-for " );
         if (ip  ==   null   ||  ip.length()  ==   0   ||   " unknown " .equalsIgnoreCase(ip))  {
            ip  =  request.getHeader( " Proxy-Client-IP " );
        } 
         if (ip  ==   null   ||  ip.length()  ==   0   ||   " unknown " .equalsIgnoreCase(ip))  {
            ip  =  request.getHeader( " WL-Proxy-Client-IP " );
        } 
         if (ip  ==   null   ||  ip.length()  ==   0   ||   " unknown " .equalsIgnoreCase(ip))  {
           ip  =  request.getRemoteAddr();
       } 
        return  ip;
   }
}
最近下载更多
天马行空  LV3 2021年12月5日
何松林  LV7 2021年10月22日
Limiun  LV6 2020年3月25日
jfjiayou  LV1 2020年3月25日
易拉环  LV3 2019年12月10日
yy921210  LV1 2019年10月11日
chang223  LV11 2019年6月18日
碼丐0077  LV9 2018年11月6日
zhangzzw  LV8 2018年3月22日
OwenLeon  LV9 2017年10月11日
最近浏览更多
胖嘟嘟2580  LV3 2022年6月8日
sjh0224 2022年5月1日
暂无贡献等级
dorient 2022年2月27日
暂无贡献等级
Irene777  LV1 2022年2月24日
学习指南  LV5 2022年1月3日
silencecfx  LV1 2021年12月26日
天马行空  LV3 2021年12月5日
hwhrr123  LV3 2021年11月20日
桜の舞  LV1 2021年11月14日
何松林  LV7 2021年10月22日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友