Filter设计实现IP地址限制

时间:2023-03-09 16:03:16
Filter设计实现IP地址限制

示例:创建一个IP过滤Filter,当一个用户发出访问请求的时候,首先通过过滤器进行判断,

如果用户的IP地址被限制,就禁止访问,只有合法的IP才可以继续访问。IP过滤Filter代码如下:

IPFilter.java

 package com.mhb;

 import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class IPFilter implements Filter { protected FilterConfig filterConfig;
protected String ip; public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig; //设置属性filterConfig
this.ip = this.filterConfig.getInitParameter("ip"); //设置初始化参数IP
}
//过滤方法
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
String remoteIP = request.getLocalAddr(); //获得客户端ip地址 if(remoteIP.equals(ip)){ //判断IP是否被禁止
response.setCharacterEncoding("gb2312"); //设置输出内容编码格式
PrintWriter out = response.getWriter();
out.println("<b>你的IP地址被禁止访问!</b>");
}else{
chain.doFilter(request, response);
}
}
//销毁方法
public void destroy() {
}
}

web.xml配置

 <filter>
<filter-name>IPFilter</filter-name>
<filter-class>com.mhb.IPFilter</filter-class>
<init-param>
<param-name>ip</param-name>
<param-value>127.0.0.1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>IPFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

浏览器显示:

Filter设计实现IP地址限制