概念
过滤器:顾名思义,就是在源数据和目的数据之间起过滤作用的中间组件。
过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。
过滤器可以实现以下目的:
-
在客户端的请求访问后端资源之前,拦截这些请求。
-
在服务器的响应发送回客户端之前,处理这些响应。
过滤器要实现的接口是Filter(javax.servlet包中)
过滤器的三个重要方法:
(1) Init(FilterConfig config)
(2) doFilter(ServletRequest request,ServletResponse response,FilterChain chain) chain.doFilter(request,response);//将请求传给下一个过滤器或目标资源。
(3) destory()
过滤器的配置:
(1)xml配置
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.ambow.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(2)注解配置 在Servlet3.0之后,可以使用注解进行配置
@WebFilter( filterName = "LoginFilter",urlPatterns = { "/jsps/cart/*", "/jsps/order/*" }, servletNames = { "CartItemServlet", "OrderServlet" })
public class LoginFilter implements Filter {
...
}
注解配置参考:https://www.cnblogs.com/ooo0/p/10360952.html
重点应用:
统一字符编码
统一权限验证