1.过滤器的基本原理:
过滤器可以用来对用户进行统一的身份判断,IP访问权限,用户发送请求的字符编码转换,对请求和响应进行加密和解密,记录用户登录日志等。
2.一个过滤器的实现例子:
package com.yuan;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class IPFilter implements Filter {
protected FilterConfig filterConfig;
protected String ip;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
String remoteIp = request.getRemoteAddr();
if(remoteIp.equals(ip)){
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
out.println("<b>您的IP地址被禁止访问</b>");
}else{
chain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.ip = this.filterConfig.getInitParameter("ip");
}
}
web。xml配置:
<filter>
<filter-name>IPFilter</filter-name>
<filter-class>com.yuan.IPFilter</filter-class>
<init-param>
<param-name>ip</param-name>
<param-value>127.0.0.1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>IPFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.一个应用系统中,可以没有过滤器,也可以定义一个或者多个过滤器