Servlet过滤器——禁止未授权的IP访问站点

在实际的应用中,我们会遇到这样的情况,需要对某些Ip进行访问限制,不让非法的Ip访问应用系统。只有合法的Ip才能可以继续访问!


1.下面就用一个实例FilterIP.java来禁止那些未授权的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;

public class FilterIP implements Filter {
	protected FilterConfig filterConfig;
	protected String FilteredIP;
	/**
	 * 初始化
	 */
	@Override
	public void init(FilterConfig conf) throws ServletException {
		this.filterConfig = conf;//过滤器初始化
		FilteredIP = conf.getInitParameter("FilteredIP");//获取被过滤的Ip
		if (FilteredIP==null) {
			FilteredIP="";
		}
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		response.setContentType("text/html");
		response.setCharacterEncoding("gb2312");//设置编码格式
		RequestDispatcher dispatcher = request.getRequestDispatcher("ErrorInfo.jsp");//定义错误转向页面
		//读出本地Ip
		String remoteIP = request.getRemoteAddr();
		//将其与要过滤掉的Ip比较,如果相同,就转到错误处理界面
		if (remoteIP.equals(FilteredIP)) {
			dispatcher.forward(request, response);
		}else {
			chain.doFilter(request, response);
		}
	}
	
	@Override
	public void destroy() {
		this.filterConfig = null;
	}
}
2.再创建一个成功访问页面的Jsp文件Success.jsp和 失败访问错误的响应页面ErroeInfo.jsp

成功访问页面(Success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

	
		欢迎登陆
	
	
		
欢迎登陆javaWeb服务器
失败 访问错误的响应页面(ErroeInfo.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

	
		错误报告
	
	
		<%
			out.print("
对不起,您的IP不能登陆本网站!
");//被拒绝服务器Ip显示信息 %>
3.配置过滤器的web.xml


  
  	FilterIP
  	com.msit.servlet.FilterIP
  	
  	FilteredIP	
  	127.0.0.1
  	
  
  
  	FilterIP
  	/*
  
4.最后在浏览器中输入http://127.0.0.1:8080/Servlet/Succeed.jsp来测试这个程序,由于我设置的是本机Ip地址被拒绝访问,所以运行结果如下图

Servlet过滤器——禁止未授权的IP访问站点_第1张图片




5.我把本机Ip地址设置为可以访问后,我再在浏览器中输入http://127.0.0.1:8080/Servlet/Succeed.jsp来测试这个程序,运行结果如下图

Servlet过滤器——禁止未授权的IP访问站点_第2张图片


以上就是使用Servlet过滤器过滤未授权的Ip禁止访问的全过程

你可能感兴趣的:(JSP)