Servlet实现网络IP过滤

来源:互联网 发布:纪录片推荐 知乎 编辑:程序博客网 时间:2024/05/16 16:07

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>

0 0
原创粉丝点击