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

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

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>

FilterDemo4类

package com.example.filter;

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

@WebFilter(value = "/index.jsp")// 1.具体资源路径:/index.jsp 只有访问index.jsp时,过滤器才会执行
public class FilterDemo4 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

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

    }

    @Override
    public void destroy() {

    }
}

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

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

FilterDemo4类

package com.example.filter;

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

//@WebFilter(value = "/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 {

    }

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

    }

    @Override
    public void 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);
    }
}

/user/* 访问/user下的所有资源时,过滤器都会被执行

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

package com.example.filter;

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

//@WebFilter(value = "/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 {

    }

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

    }

    @Override
    public void destroy() {

    }
}

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

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

package com.example.filter;

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

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

    }

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

    }

    @Override
    public void destroy() {

    }
}

/*访问所有资源时,过滤器都会被执行

posted @ 2023-02-13 15:49  肥宅快乐水~  阅读(28)  评论(0编辑  收藏  举报