Web—07:Listener(监听器)

监听器:监听某一个事件的发生,或状态的改变。

监听器的内部原理:接口回调

 


三种Web监听器监听三个作用域的创建和销毁,而三个作用域对应的对象是:

request  ---HttpServletRequest
session  ---HttpSession
aapplication  --- ServletContext

 1. ServletContextListener监听器

  • ServletContext创建 :启动服务器的时候
  • ServletContext销毁 :关闭服务器 或 从服务器移除项目
  • 作用:完成自己想要的初始化工作;执行某一个任务

 


2. ServletRequestListener监听器

  • request创建 :访问服务器上的任意资源(html、jsp、servlet)都会有请求出现。
  • request销毁 :服务器已经对这次请求作出了响应。
public class MyRequestListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("servletrequest 销毁了");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("servletrequest 初始化了");
    }
}
<!-- web.xml配置 -->
<listener>
    <listener-class>com.itheima.listener.MyRequestListener</listener-class>
</listener>

 


3. HttpSessionListener监听器

  • session的创建 :只要在jsp、servlet调用getSession
  • session的销毁 :超时  30分钟(默认)、非正常关闭(执行session.invalidate()方法)
  • 作用:统计在线人数
public class MySessionListener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("创建session了");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("销毁session了");
    }
}
  •  session超时(失效)时间设置:
//方式一:在tomcat-7.0\conf\web.xml中设置,时间单位为分钟
<session-config>
    <session-timeout>30</session-timeout>
</session-config>

//方式二:在工程的web.xml中设置,时间单位为分钟
<session-config>
    <session-timeout>15</session-timeout>
</session-config>

//方式三:通过java代码设置,以秒为单位
session.setMaxInactiveInterval(30*60);

 


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值