Servlet3.0有(但不限于)如下几个接口:

1、ServletContextListener

此接口用于监听Web application的启动和关闭事件。

2、ServletContextAttributeListener

此接口用于监听ServletContext对象上的属性(attribute)变更事件。也就是application上的属性变更事件。

3、ServletRequestListener

此接口用于监听客户端发起的请求(request)事件。

4、ServletRequestAttributeListener

此接口用于监听ServletRequest对象上的属性(attribute)变更事件。

5、HttpSessionListener

此接口用于监听与客户端之间的Session的开始和结束事件。

6、HttpSessionAttributeListener

此接口用于监听Session对象上的属性(attribute)变更事件。


多说一句,@WebListener这个注解是Servlet3.0才有的特性,这个注解的作用就相当于之前在web.xml文件中的配置:

<listener>
    <listener-class>com.abc.servlet3.ServletContextEventHandler</listener-class> 
</listener>

上面配置中的com.abc.servlet3.ServletContextEventHandler是我虚构的,总之就是你那个实现了XXXXXXListener的类。把@WebListener annotation写在你那个实现类上,就可以省掉在web.xml中配置listener信息了。