一. Filter
什么是Filter?
Servlet、Filter、Listener(三大组件);
Servlet:处理请求
Filter:过滤拦截请求
Listener:监听器
三大组件基本都需要在web.xml中进行注册;除过Listener中的两个(活化钝化监听器,绑定解绑监听器)需要javaBean实现,不注册外,剩下的三大组件都需要注册
使用
过滤器的使用步骤;
-
实现 FIlter 接口,
-
去 web.xml 进行配置;
-
Filter配置
<filter> <filter-name>MyFirstFilter</filter-name> <filter-class>filter.MyFirstFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFirstFilter</filter-name> <url-pattern></url-pattern> </filter-mapping>
url-pattern 的三种写法
① 精确匹配
/pics/haha.jsp /hello/login :直接拦截指定的路径
② 路径匹配:(模糊匹配)
/pics/*:拦截pics下的所有请求
③ 后缀匹配:(模糊匹配)
*.jsp:拦截所有以.jsp结尾的请求; /pics/*.jsp;不能
原理
doFilter(){
//放行请求;
chain.doFilter(request,response);
}
二. Listener
监听器
javaWeb的三大组件之一(Servlet,Filter、Listener);
监听器共八个:
ServletRequest(2)、HttpSession(4)、ServletContext(2)
HttpSession的四个监听器:
生命周期监听器、属性变化监听器
额外的两个(活化钝化监听器、绑定解绑监听器)
需要掌握的监听器:
- ServletContextListener:(生命周期监听器);
- 监听ServletContext的创建和销毁(监听服务器的启动、停止);
- 服务器启动为当前项目创建ServletContext对象,服务器停止销毁创建的ServletContext;
ServletContext:
-
一个web项目对应一个ServletContext,它代表当前web项目的信息
-
还可以作为最大的域对象在整个项目运行期间共享数据
用法
1、实现对应的监听器接口
2、去web.xml中进行配置;
注意:有两个Listener是javaBean需要实现的接口,(HttpSessionActivitionListener,HttpSessionBindingListener)