package com.msit.servlet;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*
*Servlet实现网络IP过滤
*/
public class FilterIP implements Filter {
protected FilterConfig filterConfig;
protected String filterIP;
@Override
public void destroy() {
this.filterConfig=null; //servlet销毁
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
response.setContentType("text.html;charset=uft-8");
response.setCharacterEncoding("utf-8");
RequestDispatcher rd=request.getRequestDispatcher("ErrorInfo.jsp");
String IP=request.getRemoteAddr(); //得到本机IP地址
if(IP.equals(filterIP)){ //判断本机的IP地址与配置文件中的Ip是否相等
rd.forward(request, response); //跳转到错误页面
return;
}else{
chain.doFilter(request, response); //添加到过滤链
}
}
/**
*
*Servlet初始化方法
*/
@Override
public void init(FilterConfig conf) throws ServletException {
this.filterConfig=conf;
filterIP=conf.getInitParameter("filterIP"); //获得配置web.xml文件要过滤的IP参数
if(filterIP==null){
filterIP="";
}
}
}
/* * * * * * * web.xml配置参数* * * * * * * * */
<filter>
<filter-name>FilterIP</filter-name>
<filter-class>com.msit.servlet.FilterIP</filter-class>
<init-param>
<param-name>filterIP</param-name>
<param-value>127.0.0.1</param-value> <!--指定要过滤的参数IP-->
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterIP</filter-name>
<url-pattern>/*</url-pattern> //设置过滤的页面 /*表示整个应用程序
</filter-mapping>