Java学习之路——基础阶段二(第十七篇)

我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容。
  前言:此随笔主要是Java基础中的基础,相信大家对这方面肯定有着自己的理解和认识,具体详解可以参照万能的baidu,有的我就一笔带过,希望在我的学习之路上能够有大牛进行指导,也有更多的小伙伴共勉。

Filter过滤器

  1. 概念:web过滤器当访问服务器时,过滤器可以将一写访问拦截下来,完成一些特殊功能;
- 作用:一般用于完成通用的操作,如:登陆验证,编码的统一管理,敏感词字符过滤..
  1. 快速入门
    1. 步骤:

      • 定义一个类,实现接口Filter
      • 复写方法
      • 配置拦截路径
        1. web.xml
        2. 注解
    2. 代码:
      @WebFilter("/*")//访问所有资源之前,都会执行该过滤器

	<filter>
        <filter-name> 过滤器配置名称</filter-name>
        <filter-class> 过滤器的类路径</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>过滤器配置名称</filter-name>
        <url-pattern>过滤器的路径</url-pattern>
    </filter-mapping>
	@Override
    public void init(FilterConfig filterConfig) throws ServletException {
	//这是服务器用于启动对象加载资源每次创建Filter时都会调用一次,也只执行一次;
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
	//这是每一次请求被拦截资源时,会执行,并且执行多次.
    }

    @Override
    public void destroy() {
	//这里是销毁,在服务器关闭后Filter对象被销毁,只执行一次用于释放资源.
  1. 过滤器的执行流程
    1.执行过滤器
    2.执行过滤器放行后的资源
    3.执行过滤器放行代码下边的代码

  2. 过滤器的生命周期

    • init 执行一次,在服务器开启后,创建Filter对象调用init方法执行一次,用于加载资源;
    • doFilter 执行多次,每一次请求被拦截后都会被执行一次;
    • destory 执行一次,在服务器关闭后,销毁Filter对象调用destory方法执行一次,用于释放资源.
  3. 过滤器配置详解

    1. 拦截路径的配置
    2. 拦截方式的配置
      1.注解配置
      - 设置dispatcherTypes属性
      - 1.Request:默认值
      - 2.Forward:转发访问资源
      - 3.Include:包含访问资源
      - 4.Error:错误跳转资源
      - 5.Async:异步访问资源
      2.xml配置
      - 设置内容即可
  4. 过滤器链(配置多个过滤器)

    1. 过滤器的执行顺序
      • 过滤器1;
      • 过滤器2;
      • 资源执行;
      • 过滤器2;
      • 过滤器1;
    2. 过滤器先后顺序问题
      1. 可以通过按字符串规则比较来制定执行顺序;
        如:AFilter和 BFilter A就先执行;
      2. web.xml配置也可以通过来进行设置,谁定义在上边谁先执行.

监听器

Listener:web三大组件之一.
ServletContextListener:时间监听机制,
方法:
1. ContextDestroyed:
- ServletContext方法销毁时调用此方法
2.ContextInitalized:
- ServletContext方法创建时调用此方法.

配置:
1. xml配置
<Listener>类文件名<Listener/>
2. 注解配置
- @WebListener

步骤:
1.实现ServletContextListener接口
2.复写方法
3.配置文件

猜你喜欢

转载自blog.csdn.net/Mr_ZhaoYanze/article/details/90171288