Java Web过滤器和监听器


Java Web 三大基本组件(Servlet、Filter、Listener)
Servlet: 处理请求
Filter: 过滤拦截请求
Listener:监听器

三大组件中基本都需要在web.xml中进行注册:除了Listener的两个(活化钝化监听器、绑定监听器)需要JavaBean实现不需要注册外


过滤器

过滤器的使用步骤

  1. 实现Filter接口
  2. 去web.xml注册

Filter配置

1
2
3
4
5
6
7
8
<filter>
<filter-name>MyFilter</filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>

url-pattern的三种写法

  1. 精确匹配
    /pics/hello.jsp /hello/login: 直接拦截指定路径

  2. 路径匹配(模糊匹配)
    /pics/* : 拦截pics下的所有请求

  3. 后缀匹配(模糊匹配)
    *.jsp:拦截所有以jsp结尾的请求

【注】 不能使用/pics/*.jsp

Filter原理

1
2
3
4
doFilter(){
//放行请求
chain.doFilter(request, response);
}

多个Filter的访问顺序

监听器

八个:ServletRequest(2)、HttpSession(4)、ServletContext(2)
2:生命周期监听器、属性变化监听器
4:HttpSession额外监听器,还有两个(活化钝化监听器、绑定监听器)
掌握监听器:
ServletContextListener(生命周期监听器):监听Servlet的创建和销毁(监听服务器的启动停止): 服务器启动为当前项目创建ServletContext对象,服务器停止销毁创建的Servlet
ServletContext

  1. 一个Web项目对应一个ServletContext,它代表当前web项目的信息
  2. 还可以作为最大的域对象在整个项目运行期间共享数据

使用

  1. 实现对应的监听接口
  2. 去web.xml中进行配置

    注意:有两个Listener是JavaBean需要实现的接口(HttpSessionActivitionListener, HttpSeesionBindingListener)

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×