过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类。javax.servlet.Filter 接口定义了三个方法:
序号 | 方法 & 描述 |
---|---|
1 | public void doFilter (ServletRequest arg0, ServletResponse arg1, FilterChain arg2) 在service方法之前调用,调用FilterChain的doFilter方法执行下一个Filter过滤器或service |
2 | public void init(FilterConfig arg0) 启动时调用,用于初始化,FilterConfig的getInitParameter(“name”)方法可以读取web.xml中的配置参数 |
3 | public void destroy() 销毁时调用 |
Servlet规范当中定义的一种特殊的组件,用于拦截Servlet容器的调用 过程。
当Servlet容器收到请求之后,会先调用过滤器,再调用后续的web组件。
当有多个过滤器都满足拦截的要求,则容器会依据<filter-mapping> 配置的先后顺序来调用。
web.xml配置
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>web.LoginFilter</filter-class>
<!--配置参数-->
<init-param>
<param-name>parameter</param-name>
<param-value>value</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>LoingFilter</filter-name>
<!--此处url填写与拦截的servlet的url相同-->
<url-pattern>/login</url-pattern>
</filter-mapping>