过滤器(Filter)
用于servlet之外对于Resquest或Response的修改,用于对用户请求的预处理,可对HttpServletResponse进行后处理。
实现步骤(于tomcat以及servlet2.5的版本中):
1.创建普通java类,一般单独放一个过滤包下,好区分
2.实现javax.servlet.Filter接口
3.配置web.xml的对应过滤代码
过滤器链:
如果有多个过滤器,拦截顺序为web.xml中的配置顺序,谁先配置水谁先执行。
放行时,如果有下一个过滤器,会自动放行到下一个过滤器,如果没有则放行到指定资源
普通java类中的过滤器代码,需要重写方法,需要与servlet同用
public class Filter01 implements Filter {
/**
* 服务器自动调用,初始化方法
* 只会执行一次,在服务器启动时就初始化
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
//过滤方法 ,每次拦截请求时都会调用
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 放行资源
chain.doFilter(request, response);
}
//销毁方法,服务器自动调动,只会执行一次,