Filter(过滤器)
1.Tomcat提供的一个组件 这个组件类似Servlet机制使用方式
2.是一个特殊的Servlet
Servlet能干的事情这个Filter也能完成
- 过滤什么?
拦截请求,过滤相应
- 什么时候使用?
做一些登录验证的时候使用的
Filter的基本使用方法:
- 我们需要自己定义一个类,在Tomcat 9 之前我们需要自己实现一个Filter接口,而到了Tomcat 9 之后我们只需要继承HttpFilter方法即可
- 继承完这个HttpFilter方法后需要我们从写doFilter(), init(), destroy()方法
- 其中doFilter()这个方法中有三个参数,连个异常
参数:HttpServletRequest, HttpServletRequest, FilterChain
异常:ServletException, IOException
- 在web.xml文件中配置一下信息
<filter>
<filter-name>为这次配置起个名字<filter-name>
<filter-class> 某一个Filter类<filter-class>
<filter>
<filter-mapping>
<filter-name>为这次配置起个名字<filter-name>
<url-pattern>拦截的一名字<utl-pattern>
<filter-mapping>
执行filter是在到达真正目标之前的一个环节
filter先执行 目标后执行 目标(Servlet JSP)
filter执行之后 后续目标没有啦????
从代码和流程图来看
似乎Filter可以替代Servlet 功能上完全可以提到
从使用上貌似不行
1.现实生活中 目标是真正做事的 过滤器负责拦截的
2.目标是做一件事情的 过滤器好多请求都会经过
3.过滤器 目标之前做点事情 目标之后还会做点事情