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实例在服务器上被移除前调用。*/
}
}

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注