1、过滤器

1.1、快速入门

  • 定义一个类 实现接口Filter(javax .servlet)
    • Filter接口有三个方法
  • 复写方法
  • 配置拦截路径

1.2、过滤器 配置

1、注解配置 直接在类上注解

再写过滤器小结2

2、web.xml 配置

再写过滤器小结2

1.3、放行

所有请求被拦截之后,访问的页面不能显示内容,这时候需要过滤器放行

操作超级简单

再写过滤器小结2

1.4、拦截路径配置

1、具体资源路径:/index.jsp 只有该路径被拦截

2、目录拦截:/user/* 访问/user下所有资源过滤器拦截

3、后缀名拦截: *.jsp 访问所有jsp资源,过滤器拦截

4、拦截所有资源:/* 访问所有资源拦截

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

注解配置

  • 设置dispatcherTypes属性
  • 1、REQUEST 默认 浏览器直接访问资源
  • 2、FORWARD
  • 3、INCLUDE
  • 4、ERROR
  • 5、ASYNC

REQUEST 默认演示:

再写过滤器小结2

再写过滤器小结2

根据图中案例,浏览器直接访问index会被拦截,但是通过通过updateServlet转发不会被拦截,如果注解参数dispatcherTypes改成FORWARD,那么转发就会被拦截,dispatcherTypes属性是数组也可以同时写上FORWARD 与其他参数

web.xml配置

  • 设置标签即可

    再写过滤器小结2

1.6、配置多个过滤器

  • 如果有两个过滤器6和7
  • 再写过滤器小结2

再写过滤器小结2

  • 过滤器执行先后问题
    • 按照字符串规则比较:例如Afilter和 Bfilter,A先执行,超简单的
    • 在web.xml配置中,谁的位置更靠上谁先执行,超简单的

2、登陆验证

2.1、登录验证

案例需求,只有登录了才能访问所有资源,不登陆不放行

思路:简单

判断资源是不是登录相关资源,如果是直接放行比如login.jsp ,css样式,验证码之类

判断User是否存储在session中,如果有那么放行(忽然想起来session只要不关闭浏览器始终存在,所以这是合理操作)

再写过滤器小结2

2.2、过滤敏感词汇

案例需求:将敏感词替换成*

思路:对request对象进行增强

具体实现暂时略过 日后再补

3、监听器

3.1、 什么是监听器

  • ServletContextListener:监听器之一,用来监听ServletContext对象的创建和销毁 该接口两个方法如图(ServletContext对象在服务器启动后自动创建)

    • 再写过滤器小结2
  • 使用步骤

    • 1、定义一个类实现ServletContextListener接口
    • 2、复写方法
    • 3、配置
      • web.xml配置,也叫注册监听器
      • 再写过滤器小结2

相关文章:

  • 2022-12-23
  • 2021-05-17
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2022-01-30
  • 2022-03-06
  • 2021-07-10
猜你喜欢
  • 2022-12-23
  • 2022-01-10
  • 2021-05-17
  • 2022-02-07
  • 2022-12-23
  • 2022-02-07
  • 2021-05-16
相关资源
相似解决方案