Filter

实现Filter接口

一般用于完成通用的操作,如:登陆验证、统一编码处理、敏感字符过滤等

执行流程

  1. 执行过滤器
  2. 执行放行后的资源
  3. 继续执行过滤器放行代码下的代码

配置

  1. 拦截路径配置

    1. 注解配置

      • 具体资源路径: /index.jsp
      • 拦截目录: /user/*
      • 后缀名拦截: *.jsp
      • 拦截所有资源: /*
    2. web.xml配置

       <filter>
      <filter-name>demo</filter-name>
      <filter-class>包名.类名</filter-class>
      </filter>
      <filter-mapping>
      <filter-name>demo</filter-name>
      <!-- 拦截路径 -->
      <url-pattern>/*</url-pattern>
      </filter-mapping>
  2. 拦截方式配置:资源被访问的方式

    1. 注解配置

      设置 dispatcherTypes 属性

      • REQUEST:默认值。浏览器直接请求资源
      • FORWARD:转发访问资源
      • INCLUDE:包含访问资源
      • ERROR:错误跳转资源
      • ASYNC:异步访问资源
    2. web.xml配置

      设置 <dispatcher></dispatcher> 标签

过滤器先后顺序

  1. 注解配置:按照类名的字符串比较规则比较,值小的先执行
  2. web.xml配置: <filter-mapping> 按照定义顺序执行

Listener

实现ServletContextListener接口

ServletContextListener:监听ServletContext对象的创建和销毁

  • 方法:

    • void contextInitialized(ServletContextEvent sce)ServletContext 对象创建后会调用该方法
    • void contextDestroyed(ServletContextEvent sce)ServletContext 对象被销毁之前会调用该方法
  • 配置

    1. web.xml

       <listener>
      <listener-class>包名.类名</listener-class>
      </listener>

      指定初始化参数 <context-param> 进行资源文件的加载

    2. 注解:

      @WebListener

最新文章

  1. linux安装mvn后提示权限不够
  2. 判断 .NET Framework安装版本
  3. SWIFT 闭包的简单使用二
  4. Ubuntu下解决bash 没有那个文件或目录的方法
  5. NSArray、NSMutableArray基本用法
  6. jquery中each()函数
  7. javascript设计模式--备忘录模式(Memento)
  8. HNOI2008玩具装箱 (斜率优化)
  9. Extjs搜索域使用
  10. ArrayList--卧槽这就是源码
  11. java获取数据库的列名、类型等信息
  12. java(jdk1.7) IO系列01之InputStream和OutputStream解析
  13. 自学LinkedBlockingQueue源码
  14. [转载] Linux的Top命令解析
  15. T-SQL动态查询(4)——动态SQL
  16. json中的json.dumps()
  17. SQL 使用临时表和临时变量完成update表字段---实际案例
  18. 2017-10-6模拟赛T3 丝(filament)
  19. Java框架spring 学习笔记(一):SpringBean、ApplicationContext 容器、BeanFactory容器
  20. 2018-08-22 为中文API的简繁转换库添加迟到的持续集成

热门文章

  1. ajax(form)图片上传(spring)
  2. C#定义常量的两种方法
  3. C# for语句
  4. JS学习笔记--变量类型
  5. MySQL主从复制读写分离如何提高从库性能-实战
  6. Percona-Tookit工具包之pt-mext
  7. linux redis5.0 集群搭建
  8. laravel EncryptCookies中间件导致无法获取自定义cookie
  9. Codeforces Round #438 C - Qualification Rounds 思维
  10. Apache 设置二级域名