Fitter-细节-过滤器拦截路径配置

Fitter-细节-过滤器拦截路径配置

1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行

2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行

3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行

4. 拦截所有资源:/* 访问所有资源时,过滤器都会被执行

 

 

1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行

创建hello.jsp

复制代码
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
hello.jsp
</body>
</html>
复制代码

创建过滤器

复制代码
package com.example.day_19_fitterlistener.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * 过滤器快速入门
 */

@WebFilter("/index.jsp")//1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行
public class FilterDemo4 implements Filter {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("FitterDemo4......");
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
复制代码

我们运行代码,只有访问index.jsp的时候控制台才会输出FitterDemo4.....,访问hello.jsp的时候,控制台不会输出

 

 

 

 

 

 

2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行

创建FitterDemo4

复制代码
package com.example.day_19_fitterlistener.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * 过滤器快速入门
 */

//@WebFilter("/index.jsp")//1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行
@WebFilter("/user/*")//2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行
public class FilterDemo4 implements Filter {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("FitterDemo4......");
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
复制代码

 

创建两个ServletDemo

复制代码
package com.example.day_19_fitterlistener.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/user/findAllServlet")
public class ServletDemo1 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("findAllServlet...");
        super.doPost(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }
}
复制代码
复制代码
package com.example.day_19_fitterlistener.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/user/updateServlet")
public class ServletDemo2 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("updateServlet...");
        super.doPost(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }
}
复制代码

 

 

 

 

3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行

复制代码
package com.example.day_19_fitterlistener.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * 过滤器快速入门
 */

//@WebFilter("/index.jsp")//1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行
//@WebFilter("/user/*")//2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行
@WebFilter("*.jsp")//3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行
public class FilterDemo4 implements Filter {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("FitterDemo4......");
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
复制代码

 

只有访问后缀名为jsp的才会输出

 

 

最后一种,咱们之前已经展示过, 在这里就不展示了

posted @   漁夫  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示