【郑州校区】Filter Filter
Filter也称之为过滤器,Filter是Servlet技术中最激动人心的技术,
Filter可以管理WEB服务器中所有的WEB资源,
Filter可以对JSP,Servlet,HTML,以及图片文件等进行拦截和过滤,
Filter常用于实现一些特殊的功能,比如访问权限的控制,敏感词汇的过滤,乱码的处理等等,
Filter其实就是一个特殊的Servlet,
Servlet API提供了Filter接口,在WEB项目中,一个Java类实现了Filter接口,那这个Java类他就是Filter过滤器,
Filter其实就是在用户访问目标资源之前,对请求和响应进行拦截过滤和处理。
Filter开发步骤
在WEB项目中创建一个Java类,
让该类实现javax.servlet.Filter接口,
在该类中实现Filter接口的所有方法,
在web.xml文件中进行相关的配置。
Filter的生命周期
创建
Filter对象在WEB服务器启动的时候,由WEB服务器帮我们创建
init()
销毁
Filter对象在WEB服务器关闭的时候会被销毁
destory()
Filter的细节
Filter链
在同一个WEB应用中,可以开发编写多个Filter,那这多个Filter组成了一个链子,这个链子我们就称之为Filter链,
WEB服务器在执行Filter链的时候,会根据Filter在web.xml文件中的配置顺序来执行。
Filter的初始化参数
在web.xml文件中,可以通过<init-param>标签来为Filter配置初始化参数,
WEB服务器在创建Filter对象的时候,会调用Filter对象的init方法,并且将封装了Filter初始化参数的FilterConfig对象传递进去,
在Filter的init方法中,就可以通过FilterConfig对象来获取Filter的初始化参数。
Filter常见应用
统一全站字符编码
服务器端响应数据的乱码
客户端请求数据的乱码
校验用户是否登录
监听器
是一个实现了特定接口的普通Java类,用于监听其他对象的创建和销毁,监听其他对象的方法执行和属性改变,
被监听的对象如果发生了上述的事件,监听器的某个方法就会立刻的执行。
作用
监听(监视,观察)其他对象所发生的变化,主要用于图形化界面的程序员,比如Java的GUI,Android,IOS。
组成的元素
事件源
监听器
监听器绑定事件源
事件发生
事件处理
入门案例
Frame
自定义监听器
Student 事件源
eat();
sleep();
addStudentListener(StudentListener listener);
StudentListener 监听器
preEat();
preSleep();
Servlet中的监听器
Servlet规范为我们提供了8个监听器。
监听域对象的创建和销毁
ServletContextListener
HttpSessionListener
ServletRequestListener
监听域对象中属性的变化
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
编写步骤
创建一个普通的Java类
让该类实现监听器的接口
在该类中实现监听器接口的所有方法
在web.xml文件中通过<listener>标签来配置(注册)监听器
帮助JavaBean对象感知自己在session域对象中的状态
HttpSessionBindingListener
HttpSessionActivationListener
这两个特殊的监听器不需要在web.xml文件中配置,让JavaBean实现这两个接口就可以了
Listener常见应用
统计在线用户数
计数器
可以把计数器保存在ServletContext域对象当中
计数器的默认值是0
如果session域对象创建了,那我们认为用户在线了,计数器就需要+1
如果session域对象销毁了,那我们认为用户离线了,计数器就需要-1
在线
一个用户有了自己的session对象,我们就认为这个用户在线了
离线
一个用户手动销毁自己的session对象,获取超时了,那我们就认为这个用户离线了
统计在线登陆用户数
传智播客·黑马程序员郑州校区地址 河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
|