第一章  Filter:过滤器

1. 概念:
* 生活中的过滤器:净水器,空气净化器,土匪、
* web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。
* 过滤器的作用:
* 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤...

2. 快速入门:
1. 步骤:
1. 定义一个类,实现接口Filter
2. 复写方法
3. 配置拦截路径
1. web.xml
2. 注解
2. 代码:
@WebFilter("/*")//访问所有资源之前,都会执行该过滤器
public class FilterDemo1 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("filterDemo1被执行了....");

//放行
filterChain.doFilter(servletRequest,servletResponse);

}

@Override
public void destroy() {

}
}

3. 过滤器细节:
1. web.xml配置
<filter>
<filter-name>demo1</filter-name>
<filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<!-- 拦截路径 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
2. 过滤器执行流程
1. 执行过滤器
2. 执行放行后的资源
3. 回来执行过滤器放行代码下边的代码
3. 过滤器生命周期方法
1. init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源
2. doFilter:每一次请求被拦截资源时,会执行。执行多次
3. destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源
4. 过滤器配置详解
* 拦截路径配置:
1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行
2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行
3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行
4. 拦截所有资源:/* 访问所有资源时,过滤器都会被执行
* 拦截方式配置:资源被访问的方式
* 注解配置:
* 设置dispatcherTypes属性
1. REQUEST:默认值。浏览器直接请求资源
2. FORWARD:转发访问资源
3. INCLUDE:包含访问资源
4. ERROR:错误跳转资源
5. ASYNC:异步访问资源
* web.xml配置
* 设置<dispatcher></dispatcher>标签即可

5. 过滤器链(配置多个过滤器)
* 执行顺序:如果有两个过滤器:过滤器1和过滤器2
1. 过滤器1
2. 过滤器2
3. 资源执行
4. 过滤器2
5. 过滤器1

* 过滤器先后顺序问题:
1. 注解配置:按照类名的字符串比较规则比较,值小的先执行
* 如: AFilter 和 BFilter,AFilter就先执行了。
2. web.xml配置: <filter-mapping>谁定义在上边,谁先执行
4. 案例:
1. 案例1_登录验证
* 需求:
1. 访问day17_case案例的资源。验证其是否登录
2. 如果登录了,则直接放行。
3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。

2. 案例2_敏感词汇过滤
* 需求:
1. 对day17_case案例录入的数据进行敏感词汇过滤
2. 敏感词汇参考《敏感词汇.txt》
3. 如果是敏感词汇,替换为 ***

* 分析:
1. 对request对象进行增强。增强获取参数相关方法
2. 放行。传递代理对象

* 增强对象的功能:
* 设计模式:一些通用的解决固定问题的方式
1. 装饰模式
2. 代理模式
* 概念:
1. 真实对象:被代理的对象
2. 代理对象:
3. 代理模式:代理对象代理真实对象,达到增强真实对象功能的目的
* 实现方式:
1. 静态代理:有一个类文件描述代理模式
2. 动态代理:在内存中形成代理类
* 实现步骤:
1. 代理对象和真实对象实现相同的接口
2. 代理对象 = Proxy.newProxyInstance();
3. 使用代理对象调用方法。
4. 增强方法

* 增强方式:
1. 增强参数列表
2. 增强返回值类型
3. 增强方法体执行逻辑

第二章  Listener:监听器

* 概念:web的三大组件之一。
* 事件监听机制
* 事件 :一件事情
* 事件源 :事件发生的地方
* 监听器 :一个对象
* 注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码

* ServletContextListener:监听ServletContext对象的创建和销毁
* 方法:
* void contextDestroyed(ServletContextEvent sce) :ServletContext对象被销毁之前会调用该方法
* void contextInitialized(ServletContextEvent sce) :ServletContext对象创建后会调用该方法
* 步骤:
1. 定义一个类,实现ServletContextListener接口
2. 复写方法
3. 配置
1. web.xml
<listener>
<listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class>

* 指定初始化参数<context-param>
2. 注解:
* @WebListener

转载于:https://www.cnblogs.com/xuweng/p/11278707.html

java day43【Filter:过滤器 、Listener:监听器】相关推荐

  1. java nodefilter类,Java Servlet Filter过滤器概述

    Java Servlet Filter过滤器概述 Filter是Servlet的过滤器,是Servlet 2.3规范中新增加的一个功能,主要用于完成一些通用的操作,如编码的过滤.判断用户的登录状态等. ...

  2. web核心 8-filter过滤器 listener监听器 相对路径 绝对路径 项目名路径

    内容介绍 1.Filter过滤器 2.listener监听器 Filter过滤器 概述 web服务器端有三大技术:Servlet Filter Listener Servlet:本质上是一个类,这个类 ...

  3. java p41——Filter过滤器

    javaweb/day07|day08 Filter过滤器 使用步骤 要点 FilterChain 多个过滤器顺序 FilterConfig获得初始化参数 功能-作用 案例--自动登录实现 案例--装 ...

  4. [JAVA EE] Filter过滤器

    Filter过滤器 ◼ 过滤器(Filter)可以动态地拦截请求和响应. ◼ 应用场景:过滤敏感词汇.防止SQL注入.设置字符编码.进行URL级 别的权限访问控制.压缩响应信息等. 启动文件DemoA ...

  5. JavaWeb加强之JSON、jQuery、Ajax、Java正则表达式、过滤器、监听器、模板引擎FreeMarker

    过滤器.监听器,以及JSON.Ajax和正则表达式等开发必备技能,并学习文件上传和验证码等功能开发. 2.4.1 JSON基础 JSON的基础语法,以及流行JSON框架FastJSON的使用. 内容: ...

  6. Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解

    Filter filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Se ...

  7. java中的过滤器与监听器

    过滤器: Filter本身并不生成请求和响应对象,只是提供过滤功能. Filter能够在Servlet被调用之前检查Request对象,并修改Request Header和Request内容:在Ser ...

  8. 初学Java Web(8)——过滤器和监听器

    什么是过滤器 过滤器就是 Servlet 的高级特性之一,就是一个具有拦截/过滤功能的一个东西,在生活中过滤器可以是香烟滤嘴,滤纸,净水器,空气净化器等,在 Web 中仅仅是一个实现了 Filter ...

  9. javaweb(11) Listener监听器与Filter过滤器

    javaweb(11) Listener监听器与Filter过滤器 Listener监听器 什么是Listener监听器 Listener 监听器它是 JavaWeb 的三大组件之一.JavaWeb ...

  10. java过滤器的执行顺序_Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)...

    Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...

最新文章

  1. Java 8系列之重构和定制收集器
  2. linux 杀死t状态进程,Linux查杀stopped进程
  3. 前端学习(2177):vue-router得参数传递
  4. spring拦截器-过滤器的区别
  5. 新天龙官网服务器更新消息,新天龙八部怀旧服太火,增开7组服务器不够用,还得继续扩容...
  6. 听说做程序员年入百万,能不能带带你表弟?
  7. js用函数实现输出100以内与7有关的数_走近(javascript, 函数式)
  8. Java break语句,标签
  9. python之heapq
  10. 实用SQL代码解析工具——sqlparse
  11. matlab用平方法怎么求传递闭包矩阵,逐次平方法计算传递闭包
  12. 视频加密技术的实与破解
  13. Wlan学习—无线网络安全
  14. 如何用微信自动添加wifi连接服务器地址,微信WiFi一键连小程序怎么用 微信怎么连接WiFi热点...
  15. EXCEL 快捷键集合
  16. android友盟微信分享到朋友圈,2020年友盟分享到微信朋友圈
  17. PXC+haproxy+keepalived环境搭建
  18. Contest3145 - 2021级新生个人训练赛第37场_A: 奖品
  19. ubuntu装pl2303USB转串口驱动(详细,亲测)
  20. 【机器学习】缺失值的处理方法总结

热门文章

  1. java 哈希表和向量_Java基础知识笔记(一:修饰词、向量、哈希表)
  2. pydicom 显示jpeg压缩图像_图像原理 jpg png tga bmp 存储格式
  3. oracle更新前触发器,Oracle之前更新触发器
  4. python autoitlibrary_记录RF安装AutoItLibrary库的辛酸过程
  5. C语言——指针篇(二)指针和数组之内存分配和初始化
  6. php实现排序,PHP实现各种排序
  7. flink EventTime与Window
  8. SparkSQL入门
  9. 你想让自己的产品像病毒一样疯传吗
  10. Web Components 小榄