Filter细节_过滤器拦截路径配置

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 @   夫君  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示