Fitter-细节-web.xml配置方式
咱们先把之前写的那个FitterDemo1里面的那个WebFitter注解,注释掉才可以写web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <filter> <filter-name>demo1</filter-name> <filter-class>com.example.day_19_fitterlistener.filter.FilterDemo1</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <!-- 拦截路径--> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
使用web.xml也可以实现
Fitter-细节-执行流程&生命周期
执行流程:
生命周期
package com.example.day_19_fitterlistener.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; /** * 过滤器快速入门 */ @WebFilter("/*")//访问所有资源之前,都会执行该过滤器 public class FilterDemo3 implements Filter { //在服务器启动后,会创建Fitter对象,然后调用init对象,只执行一次,用于加载资源 @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("init..."); } //每一次请求资源时被拦截,会被执行,执行多次 @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //对request对象请求消息增强 System.out.println("FilterDemo2..."); //放行 filterChain.doFilter(servletRequest,servletResponse); } //在服务器关闭后,Fitter对象被销毁,如果是正常关闭,则会执行destroy对象,只执行一次,用于释放资源 @Override public void destroy() { System.out.println("destroy..."); } }
init:
在服务器启动后,会创建Fitter对象,然后调用init对象,只执行一次,用于加载资源
doFitter:
每一次请求资源时被拦截,会被执行,执行多次
destroy:
在服务器关闭后,Fitter对象被销毁,如果是正常关闭,则会执行destroy对象,只执行一次,用于释放资源
标签:xml,web,Fitter,init,细节,destroy,执行 From: https://www.cnblogs.com/yuzong/p/17074821.html