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 }

 

 

 

posted @ 2021-07-05 14:50  yub4by  阅读(88)  评论(0编辑  收藏  举报