首页 > 其他分享 >Filter细节过滤器拦截路径配置、Filter细节过滤器拦截方式配置、Filter细节过滤器链(多个过滤器)

Filter细节过滤器拦截路径配置、Filter细节过滤器拦截方式配置、Filter细节过滤器链(多个过滤器)

时间:2022-08-18 12:01:32浏览次数:50  
标签:index Filter 访问 细节 jsp 过滤器 资源

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

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

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

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

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

//@WebFilter("/*")
//@WebFilter("/user/*")
//@WebFilter("*.jsp")
@WebFilter("/index.jsp")

Filter细节过滤器拦截方式配置

拦截方式配置:资源被访问的方式

  注解配置:

    设置dispatcherTypes属性

      1.REQUEST:默认值。浏览器直接请求资源

      2.FORWARD:转发访问资源

      3.INCLUDE:包含访问资源

      4.ERROR:错误跳转资源

      5.ASYNC:异步访问资源

  web.xml配置:

    在<filter-mapping>中加上这句即可

    <dispatcher>REQUEST</dispatcher>这里面的取值和注解的一样

注解配置

1.REQUEST:默认值。浏览器直接请求资源

//浏览器直接请求资源时该过滤器会被执行
@WebFilter(value = "/index.jsp",dispatcherTypes = DispatcherType.REQUEST)
public class FilterD5 implements Filter {
    public void destroy() {}
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        System.out.println("FilterD5...");
        chain.doFilter(req, resp);
    }
    public void init(FilterConfig config) throws ServletException {}
}
@WebServlet("/user/ServletD1")
public class ServletD1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("ServletD1");
        //转发到index.jsp
        request.getRequestDispatcher("/index.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

使用Servlet转发访问

 

直接访问:

 

 

2.FORWARD:转发访问资源

@WebFilter(value = "/index.jsp",dispatcherTypes = DispatcherType.FORWARD)

直接访问

 

 

转发访问 

//浏览器直接请求资源时该过滤器会被执行或转发访问index.jsp都会被执行
@WebFilter(value = "/index.jsp",dispatcherTypes ={DispatcherType.FORWARD,DispatcherType.REQUEST})

Filter细节过滤器链(多个过滤器)

执行顺序:如果有两个过滤器:过滤器1和过滤器2

  1.过滤器1

  2.过滤器2  

  3.资源执行

  4.过滤器2

  5.过滤器1

过滤器先后执行问题:

  1.注解配置:按照类名的字符串比较规则比较,值小的先执行

    AFilter 和 BFilter :AFilter就先执行

  2.web.xml配置:<filter - mapping>谁定义在上边,谁先执行

 

搜索

复制

标签:index,Filter,访问,细节,jsp,过滤器,资源
From: https://www.cnblogs.com/pengtianyang/p/16598204.html

相关文章

  • 2022年军队文职面试中问题以及需要注意的细节有哪些!!!
    阅前说明:1、报考的岗位是软件开发岗(技术岗)不是这个岗位小伙伴直接看最后提示就好了,信我一定会对你有帮助的。2、岗位报考率1:5最后进入面试的只有4个人,我排在第3位。(笔......
  • Filter_概述和快速入门
    Filter_概述 生活中的过滤器:净水器,空气净化器web中的过滤器:当访问服务器的资源时过滤器可以将请求拦截下来完成一些特殊的功能过滤器的作用一般用于完成通用的操作......
  • ACM模式细节
    牛客网的ACM模式需要自己写输入输出,在这里简单记录一下:基本答题框架:importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Sc......
  • Filter概述和Filter快速入门
    Filter:过滤器概念生活中的过滤器:净水器,空气净化器,土匪、web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能过滤器的作用:一般用于完......
  • 五,手写SpringMVC框架,过滤器的使用
    8.过滤器8.1编写字符过滤器CharacterEncodingFilter复制项目mymvc4,新建项目mymvc5package com.hy.filter; import java.io.IOException; import javax.......
  • 搜索细节
    #include<iostream>#include<math.h>usingnamespacestd;intx[20],n,k;boolisprime(intn){ints=sqrt(double(n));for(inti=2;i<=s;i++){if(......
  • 使用Jquery的ajaxprefilter来拼接url字符串
    目的:我们每次发请求,如果都需要拼接字符串的话,会特别浪费时间,以及不利于后期维护例如如下代码:$('#form_login').on('submit',function(e){e.preventDefault(......
  • spring cloud gateway-filter深入了解(StripPrefix与PrefixPath)
    网关过滤器StripPrefix过滤器作用:去掉部分URL路径 spring:cloud:gateway:routes:-id:bds-lbs-serviceuri:lb://bds-lbs-serv......
  • flask模板与过滤器
    HTML:1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<title>Title</title>6</head>7<body>8hello9<br>10{......
  • Cookie细节存活时间、Cookie储存中文数据
    Cookie细节存活时间Cookie在浏览器中保存多长时间默认情况下,当浏览器关闭后,Cooklie数据被销毁持久化存储:setMaxAge(intseconds)......