JAVA_EE(八)监听器&&过滤器

 第一个:就是双向链表

第二个:遍历链表

1.监听器

1.编写一个类实现ServletContextLisener接口

2.

1.1 原理

 

 每次启动baby的时候family都会执行方法,

2.过滤器

Filter

  •         1.编写一个类实现Filter接口
  •         2.设置filter的url-patterns(注解)
  •                 filter的init在应用启动成功直接触发,比servlet默认情况下提前
  •                 doFilter方法就相当于servlet的service方法每次访问都会执行一次该方法

Filter如何与servlet关联

将servlet的url-pattern直接给filter使用

 关联之后,filter执行的是拦截操作,如果需要放行需要设置代码

 Filter设置/*

 /*拦截所有,然后放行(静态资源可以访问),可以做编码格式的设置

可以设置同一个url-patterns,过滤链

  • 1.如果是注解,那么按照类目字母的ASCII先后顺序执行
  • 2.如果是web.xml会按照注解的顺序执行

 应用中设置了多个filter,一个设置编码格式,一个设置拦截操作,此时最好通过web来设置顺序

 问题

根据filter执行过程,为什么dofilter值执行了一遍

去程(去往servlet):只会执行doFileter之前的方法

返程(执行玩sevlet的响应返回的步骤):只会执行doFileter之后的方法

==

未登入不允许访问:核心:

从过滤器里(auth(request))判断uri,如果是访问不允许的页面,就返回true,然后对返回ture的判断是不是有登入状态(从session域取出信息看是否匹配),如果没有就跳转页面;有就放行

利用配置文件,过滤路径(在监听器读配置文件,放到context域里取出一一判断)

 加上过滤器之后的完整执行流程 

 

 

 3.面试问题

3.1 Tomcat类加载器

为什么要打破双亲委派(一个应用中可能有多个不同版本jar包的需求,如果委派可能会出错)

tomcat可以部署应用,应用之中有class文件,class文件存在于硬盘之上

这个过程由加载器来完成,实际上该类加载器由tomcat提供

该类加载的特点

1.会到应用的WEB-INF/classes目录下加载class文件

2.会到应用的WEB-INF目录下去加载jar包

(打破的思路:自定义一个类加载器继承classloard),重写了逻辑,从而不会再次自上而下进行寻找)

3.2 tmocat执行流程

()

3.3 servlet是什么

(接口,由各服务器商实现,完成对请求响应的处理)

4. 会话技术

(因为http的无状态性,为了识别客户端,cookie与session)

5.三个域对象

(context,sessionm,request)

maven改web项目

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值