20180318:三种Servlet监听器、过滤器的学习

一、三种监听器

1.在WEB中可以对application、session、request三种操作进行监听

Servlet监听器分为三种:

    1).ServletContext监听器(容器监听器);

    2).HttpSession监听器(会话监听器);

    3).ServletRequest(请求监听器)

2.Servlet监听器的配置方式

方式一:在监听器类上进行注解配置:@WebListener ;

方式二:web.xml中配置: 

<listener>
  <listener-class>监听器路径</listener-class>
</listener>

3.ServletContext监听器

    1).对Web容器状态(生命周期)的监听

        实现ServletContextListener接口,覆写相关方法。 注:ServletContextEvent代表容器状态的事件,里面有个getServletContext()方法;

举个例子如下:

//写一个容器监听器监听application对象在JSP页面创建属性时是否能成功检测到属性的创建,这里只给出监听器部分的代码,application属性的设置只在JSP页面中

package com.afanti.application;

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class ContextAttributeListener implements ServletContextAttributeListener{

	@Override
	public void attributeAdded(ServletContextAttributeEvent event) {
		String name=event.getName(); //获取属性名
		Object value=(Object)event.getValue(); //获取属性值
		System.out.println("属性值(add)添加了属性值name值为:"+name+"value值为:"+value);
	}

	@Override
	public void attributeRemoved(ServletContextAttributeEvent event) {
		String name=event.getName();
		Object value=(Object)event.getValue();
		System.out.println("属性值(remove)添加了属性值name值为:"+name+"value值为:"+value);
	}

	@Override
	public void attributeReplaced(ServletContextAttributeEvent event) {
		String name=event.getName();
		Object value=(Object)event.getValue();
		System.out.println("属性值(replace)添加了属性值name值为:"+name+"value值为:"+value);
	}

}

先访问设置属性的页面,该监听器能成功监听到设置属性了并能获取属性名及属性值,再次访问就是替换属性,访问移除属性值也能监听到,后台打印结果如下:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值