一、Filter
Servlet规范。
1、过滤器的三要素
拦截
过滤器之所以能够对请求进行预处理,关键是对请求进行拦截,把请求拦截下来才能够做后续的操作。而且对于一个具体的过滤器,它必须明确它要拦截的请求,而不是所有请求都拦截。
过滤
根据业务功能实际的需求,看看在把请求拦截到之后,需要做什么检查或什么操作,写对应的代码即可。
放行
过滤器完成自己的任务或者是检测到当前请求符合过滤规则,那么可以将请求放行。所谓放行,就是让请求继续去访问它原本要访问的资源。
2、过滤器可以精准匹配,也可以模糊匹配
3、过滤器链
多个Filter的拦截范围如果存在重合部分,那么这些Filter会形成Filter链。
4、Filter生命周期
和Servlet生命周期类比,Filter生命周期的关键区别是:在Web应用启动时创建对象。Servlet是在第一次请求的时候创建对象。
Filter生命周期:
servlet生命周期
二、作用
1、用来处理事务
@WebFilter("*.do")
public class OpenSessionInViewFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try{
TransactionManager.beginTrans();