Servlet實現網絡IP過濾

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>

發佈了48 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章