JavaWeb19.2【Filter&Listener:过滤器Filter的执行流程和生命周期方法】
1 package com.haifei.web.filter; 2 3 import javax.servlet.*; 4 import javax.servlet.annotation.WebFilter; 5 import java.io.IOException; 6 7 /** 8 * 过滤器细节 之 过滤器执行流程 9 * 1. 执行过滤器 10 * 2. 执行放行后的资源 11 * 3. 回来执行过滤器放行代码下边的代码 12 */ 13 //@WebFilter("/*") 14 public class FilterDemo2 implements Filter { 15 public void destroy() { 16 } 17 18 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { 19 20 //对request对象的请求消息增强 21 22 System.out.println("FilterDemo2..."); 23 24 chain.doFilter(req, resp); //IDEA"注解模式Filter"代码快速创建模板 自带放行语句 25 26 //对response对象的响应消息增强 27 28 System.out.println("FilterDemo2...回来了。。。"); 29 30 /* 31 http://localhost:8080/day19/index.jsp 32 33 FilterDemo2... 34 index.jsp 35 FilterDemo2...回来了。。。 36 */ 37 } 38 39 public void init(FilterConfig config) throws ServletException { 40 41 } 42 43 }
1 <%-- 2 Created by IntelliJ IDEA. 3 User: yubaby 4 Date: 2021/7/4 5 Time: 21:35 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 <html> 10 <head> 11 <title>$Title$</title> 12 </head> 13 <body> 14 index.jsp 15 16 <% 17 System.out.println("index.jsp"); 18 %> 19 </body> 20 </html>
1 package com.haifei.web.filter; 2 3 import javax.servlet.*; 4 import javax.servlet.annotation.WebFilter; 5 import java.io.IOException; 6 7 /** 8 * 过滤器细节 之 过滤器生命周期方法 9 */ 10 //@WebFilter("/*") 11 public class FilterDemo3 implements Filter { 12 13 /** 14 * 每一次请求被拦截资源时,会执行。执行多次 15 * @param req 16 * @param resp 17 * @param chain 18 * @throws ServletException 19 * @throws IOException 20 */ 21 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { 22 System.out.println("doFilter...."); 23 chain.doFilter(req, resp); 24 } 25 26 /** 27 * 在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源 28 * @param config 29 * @throws ServletException 30 */ 31 public void init(FilterConfig config) throws ServletException { 32 System.out.println("init...."); 33 } 34 35 /** 36 * 在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源 37 */ 38 public void destroy() { 39 System.out.println("destroy...."); 40 } 41 42 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!