JAVA Web开发技术应用——监听器

——这里  我上传一个  关于监听器的一个小小案例,练手的监听器例子(统计在线用户人数和信息)

——————————————————————————————从不同浏览器等,访问我的网页时,统计的用户人数和用户信息。。用户信息只完成了  用户IP   用户第一次访问该网页的时间,用户的sessionId

以下链接       点击打开链接

JSP监听器——概述————简单说下

1、监听器:指专门用于对其他对象身上发生的【事件或状态改变】进行监听和相应处理的对象。当被监听的对象【发生变化】时,立即采取相应的行动。
注意:必须发生变化才能调用
2、监听对象:ServletContext:application(整个应用只存在一个)、HttpSession:session(针对每一个会话)、ServletRequest:request(客户请求)
3、监听内容:创建、销毁、属性改变事件

4、可以在时间发生前、发生后进行一些处理


监听器的启动顺序是根据   注册xml时的先后顺序来  加载启动的

优先级 监听器 过滤器 servlet的顺序进行启动


监听器的小例子:

1、实现ServicelContextListener接口
contextInitialized()
contextDestoryed()
2web.xml中注册
<listener>
<listener-class>类的完整路径</listener>
</listener>


按照监听的对象划分 可以分为三类 

一,ServletContext 监听服务器上下文对象
二,HttpSession 监听用户回话对象

 三,ServletRequest 监听浏览器请求对象


HttpSession对象的创建和销毁监控
Session销毁的三种情况:
1:程序调用销毁Session的方法,来销毁Session
2:关闭浏览器时销毁
3:Session超时自动销毁——注意,配置的事件可能不那么准确
session这个对象是非常有用的,对于登录登出的控制尤为重要。


ServletRequest的事件监听器
实现ServletRequestListener接口用于监听它的创建和销毁事件
一个ServletRequest可以注册多个ServletRequestListener接口,
有两个事件处理方法:
requestInitialized方法:
public void requestInitialized(ServletRequestEvent sre)
request创建时调用
参数ServletRequestEvent可以获取ServletRequest对象 ServletRequest sr = sre.getServletRequest()
进而获取初始化参数:sr.getInitParmeter("")
requestDestroyed方法:
public void requestDestroyed(ServletRequestEvent sre)
request销毁时调用
ServletRequest的主要用途:
读取参数
记录访问历史
request监听的是用户的每一个访问请求


按照监听的对象的属性变化的监听器,以及监听器中的方法的使用。
还是针对ServletContext/HttpSession/ServletRequest三个对象,此时不是针对这三个对象的创建和销毁的监听了,是针对这三个对象的属性的变化的监听了。对应的也有三个接口,每个接口中有三类针对属性不同变化的监听方法。


Servlet规范中提供的两个监听器,用于实现Session的绑定、解除绑定、钝化、活化四个方法。
需要注意的是,这两个监听器不需要注册到web.xml文件中
当在Session对象中添加这个对象作为Session的属性或者将这个对象从Session对象中清楚,都会触发对应的方法——绑定或者解除绑定的方法,这说明程序中的每个动作都应该是可控的可见的可监视的,只是有些是Web容器负责的事情,作为程序员我们了解的稍微少一些。


绑定、解除绑定、钝化、活化四个方法都是一样的,都是有关Session对象的变化的监控,绑定、解除绑定是对Session对象的属性的添加和清除的监控,钝化、活化是对Session对象持久化和反持久化的一个监控,注意,对应钝化、活化需要序列化这个过程,所以,需要实现Serializable接口——序列化的接口


另外,就是这两个监听器不需要配置在web.xml文件中但是Tomcat容器照样能知道,一定是在某个地方配置好了。


HttpServletRequest对象.getSession().getId();//获取session的ID
HttpServletRequest对象..getRemoteAddr();//获取用户ip地址


最后是我学习  监听器时的  笔记和练习 代码

附上链接   希望对你们有所帮助!!!  也请大家多多关照!!

点击打开链接




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值