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;
   }
}
最近下载更多
何松林  LV7 2021年10月22日
490127488  LV2 2020年11月12日
8战魂5无双8  LV43 2020年8月3日
Limiun  LV6 2020年3月25日
1352090  LV9 2019年12月10日
夙興夜寐  LV3 2019年11月4日
kong.yee  LV40 2019年8月1日
luyuhan  LV1 2019年7月19日
1459897691  LV7 2019年5月20日
1037352843  LV1 2019年3月7日
最近浏览更多
SJIGNKLI  LV2 2022年12月12日
胖嘟嘟2580  LV3 2022年6月8日
brucega  LV3 2022年1月17日
学习指南  LV5 2022年1月3日
1532593037  LV8 2021年12月20日
hwhrr123  LV3 2021年11月20日
何松林  LV7 2021年10月22日
OUSHUREN 2021年8月3日
暂无贡献等级
hekewen1  LV7 2021年5月17日
zhaojialiang  LV7 2021年5月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友