JavaWeb——允许授权的IP访问站点过滤器

来源:互联网 发布:信鸽营销软件 编辑:程序博客网 时间:2024/06/05 20:59

1、创建一个过滤器操作类。

2、修改web.xml文件,在web.xml文件中配置过滤器的内容

3、创建相应的Jsp页面。


创建过滤器类

package com.caokaiyuan.filter;


import java.io.IOException;


import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class IPFilter implements Filter
{
private FilterConfig config;

@Override
public void destroy()
{

}


@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;

//获得不过滤的IP段
String noFilterIp = config.getInitParameter("FilteredIP");
//获得客户端IP地址
String ipAddress = request.getRemoteAddr();
//截取前面部分IP字段
String ip = ipAddress.substring(0, 7);

//获取不过滤的Jsp页面
String noFilterJsp = config.getInitParameter("noFilteredJsp");
//包含不过滤的Jsp页面,通过过滤器
if (request.getRequestURI().indexOf(noFilterJsp) != -1)
{
arg2.doFilter(request, response);
return ;
}
//判断是否为可以通过的IP段
if (ip.equals(noFilterIp))
{
arg2.doFilter(request, response);
}
else 
{
response.sendRedirect("error.jsp");
}
}


@Override
public void init(FilterConfig arg0) throws ServletException
{
config = arg0;
}


}


修改web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置过滤器 -->
  <filter>
  <filter-name>FilterIP</filter-name>
  <filter-class>com.caokaiyuan.filter.IPFilter</filter-class>
  <!-- 配置初始化参数 -->
  <init-param>
  <!-- 配置允许通过的IP -->
  <param-name>FilteredIP</param-name>
  <param-value>219.218</param-value>
  </init-param>
  <init-param>
  <!-- 配置不过滤的jsp页面 -->
  <param-name>noFilteredJsp</param-name>
  <param-value>error.jsp</param-value>
  </init-param>
  </filter>
  
  <!-- 配置映射 -->
  <filter-mapping>
  <filter-name>FilterIP</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

创建相关Jsp页面

success.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
欢迎登陆!!
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

</body>
</html>

error.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
对不起,您的IP不能访问本站点!!
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

</body>
</html>

0 0
原创粉丝点击