过滤器(Filter)是Java Servlet规范中的一部分,它提供了一种在请求到达目标资源之前或响应发送给客户端之前进行预处理和后处理的能力。 通过编写自定义的过滤器类并将其注册到Web应用程序中,开发者可以实现诸如登录验证、权限控制、字符编码转换、敏感信息过滤、性能监控等多种功能。
使用样例:一个简单的Servlet过滤器示例
import javax.servlet.*;
import java.io.IOException;
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 过滤器初始化时执行的操作,如读取配置参数等
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 在请求被传递到下一个过滤器或目标资源前进行预处理
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
// 示例:打印请求URI
System.out.println("Request URI: " + httpServletRequest.getRequestURI());
// 传递请求和响应到下一个过滤器或目标资源
chain.doFilter(request, response);
// 在请求处理完毕后,进行后处理
// ...
}
@Override
public void destroy() {
// 过滤器销毁时执行的操作,如清理资源等
}
}