Servlet过滤器:
Servlet过滤器是用于执行某些过滤任务的对象。过滤器可以应用于servlet,jsp或html。
Servlet过滤器主要用于以下任务:
- 预处理: Servlet过滤器用于在访问服务器端的任何资源之前预处理请求。
- 后处理: Servlet过滤器用于在发送回客户端之前对响应进行后处理。
如何创建过滤器?
实现javax.servlet.Filter接口以创建过滤器。
过滤界面:
要创建过滤器,您必须实现过滤器接口。Filter接口位于javax.servlet包javax.servlet.Filter中。它提供了过滤器的生命周期方法。
过滤器接口的方法:
1. init(FilterConfig config):此方法用于初始化过滤器。它只被Web容器调用一次。
语法: public void init(FilterConfig config)
2. doFilter(HttpServletRequest请求,HttpServletResponse响应,FilterChain链):此方法用于执行预处理和后处理任务。每次针对过滤器映射到的资源发出请求/响应时都会调用它。
语法: public void doFilter(HttpServletRequest request,HttpServletResponse response,FilterChain chain)
3. destroy():当过滤器从服务中取出时,Web容器只调用一次此方法。
语法: public void destroy()
FilterChain界面:
FilterChain对象用于调用下一个过滤器或资源(如果它是过滤器链接中的最后一个过滤器)。
FilterChain接口的方法:
1. doFilter(HttpServletRequest请求,HttpServletResponse响应):此方法用于调用过滤器链接中的下一个过滤器。
语法: public void doFilter(HttpServletRequest request,HttpServletResponse response)抛出IOException,ServletException
如何在web.xml中定义过滤器?
<filter>属性用于在web.xml中定义过滤器。