我们先创建一个过滤器 也就是new出一个Filter文件
(我使用的是idea工具 )
创建完毕之后我们就要配置我们的Filter(过滤器) 用的是注释的写法
过滤指定的单个文件 @WebFilter(filterName = "Filter")
过滤全部文件 @WebFilter(filterName = "/*")
也可以过滤多个指定页面页面
@WebFilter(urlPatterns = { "/AddServlet","/qiantai/order.jsp","/RemoveServlet", "/UserOrderingServlet" })
(上图配置文件的写法) 需要注意的是 如果使用的是注释的方法配置,那么配置文件的方式就不用再书写,否则报错
说一下他的生命周期吧
首先filter是一个类,只不过是继承了 javax.servlet.Filter接口
那么我就先说一些它的生命周期
被调用 ——> init 方法并且创建一个FilterConfig类型的filterConfig ——> 进入 doFilter——> 然后在调用关闭时 使用destroy()方法
1. init(FilterConfig filterConfig)
init() 方法用于初始化过滤器,开发人员可以在 init() 方法中完成与构造方法类似的初始化功能,如果初始化代码中要使用到 FillerConfig 对象
那么,这些初始化代码就只能在 Filler 的 init() 方法中编写,而不能在构造方法中编写
2. doFilter(ServletRequest request,SeivletResponse response, FilterChain chain)
doFilter() 方法有多个参数,其中,参数 request 和 response 为 Web 服务器或 Filter 链中的上一个 Filter 传递过来的请求和响应对象;
参数 chain 代表当前 Filter 链的对象,只有在当前 Filter 对象中的 doFilter() 方法内部需要调用 FilterChain 对象的 doFilter() 方法,
才能把请求交付给 Filter 链中的下一个 Filter 或者目标程序处理
3. destroy()
destroy() 方法在 Web 服务器卸载 Filter 对象之前被调用,该方法用于释放被 Filter 对象打开的资源,例如关闭数据库和 I/O 流
<filter>
<filter-name>FiterJavaWeb</filter-name>
<filter-class>com.Tool.FilterJavaWeb</filter-class>
</filter>
<filter-mapping>
<filter-name>FiterJavaWeb</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>