JSP 过滤器
目的:
1.预处理用户的请求(在正在处理用户需要的数据之前)
常见的过滤器
认证过滤器
数据压缩过滤器
加密过滤器
触发资源访问事件的过滤器
图像转换过滤器
登录和验证过滤器
MIME类型链过滤器
令牌过滤器
转换XML内容的XSL/T过滤器
Servlet过滤器方法
一个过滤器就是一个Java类,它实现了javax.servlet.Filter 接口。javax.servlet.Filter接口定义了三个方法:
1 public void doFilter (ServletRequest, ServletResponse, FilterChain) 每当 request/response要通过过滤链时容器会调用这个方法,因为客户端请求链尾的资源
2 public void init(FilterConfig filterConfig) 容器调用这个方法来表明一个过滤器被安置在服务中
3 public void destroy() 容器调用这个方法来表明一个过滤器正在从服务中移除
JSP过滤器示例
// 引入Java包
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
// 实现 Filter 类
public class LogFilter implements Filter {
public void init(FilterConfig config)
throws ServletException{
// 获取初始化参数
String testParam = config.getInitParameter("test-param");
//打印初始化参数
System.out.println("Test Param: " + testParam);
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws java.io.IOException, ServletException {
// 获取客户端ip地址
String ipAddress = request.getRemoteAddr();
// 输出ip地址及当前时间
System.out.println("IP "+ ipAddress + ", Time "
+ new Date().toString());
// 传递请求道过滤器链
chain.doFilter(request,response);
}
public void destroy( ){
/* 在Filter实例在服务器上被移除前调用。*/
}
}