禁止未授权的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"%>
<html>
	<head>
		<title>欢迎登陆</title>
	</head>
	<body>
		<center>
			<font size = 4>欢迎登陆javaWeb服务器</font><!-- 成功访问输出语句 -->
		</center>
	</body>
</html>

失败访问错误的响应页面(ErroeInfo.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
	<head>
		<title>错误报告</title>
	</head>
	<body>
		<%
			out.print("<center><font size = 4>对不起,您的IP不能登陆本网站!</font></center>");//被拒绝服务器Ip显示信息
		%>
	</body>
</html>

3.配置过滤器的web.xml

<!-- 配置过滤器 尽可能把过滤器配置到web.xml最上面 -->
  <filter>
  	<filter-name>FilterIP</filter-name>
  	<filter-class>com.msit.servlet.FilterIP</filter-class>
  	<init-param>
  	<param-name>FilteredIP</param-name>	
  	<param-value>127.0.0.1</param-value><!-- 要过滤的Ip  127.0.0.1为本地 -->
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>FilterIP</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

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

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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Famiglistimott

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值